私は幸運にもdjango_compressorを発見し、それをスタック内に実装しました。これは多くのサーバーにデプロイされます (現在は 6 台ですが、より小さな仮想マシンをデプロイするにつれて成長しています)。
django_compressor を最高の状態で使用している場合、これはすべてうまくいきます。生の CSS/JS コードの圧縮
ただし、ここで、ある種のプリコンパイラを導入したいとします。この例では、LESS (css) としましょう。このための思考プロセスは非常に単純です。
node、npm、および less パッケージをサーバーにインストールします。
プリコンパイラへの追加を減らしましょう!
COMPRESS_PRECOMPILERS = (('text/less', 'lessc {infile} {outfile}'), )
これでデプロイすると、サーバーが less ファイルをコンパイルします。すべてが素晴らしいです!
これにさらに 8 つのサーバーを追加して、各サーバーに node、npm、および less をインストールする必要がありますか?
これは何かが正しくないように思われる場所であり、何かが欠けているように感じます. Django コミュニティは以前にもこの問題に遭遇したことがあると思います。
これまでの私の考えは次のとおりです。
post-commit フックを使用して、開発者のマシンで CSS をコンパイルします。これは、django_compressor を介して、HTML 内のコンパイル済み静的ファイルにリンクし、リポジトリにはコンパイル済みバージョンとコンパイル済みバージョンの両方が含まれていることを意味します。これに対する私の唯一の欠点は、django_compressor の利点の半分を使用しないことになり、開発者にとって退屈になる可能性があることです?
それを吸い上げて、ノード、npm、およびサーバースタックの一部を少なくします。
アップデート
さらに調べてみたところCOMPRESS_OFFLINE
、管理コマンドでフラグ (または単に --force) を使用すると、必要なことを実行するオフライン マニフェスト ファイルが生成されるようです (ローカルでのみテストされます)。そのため、デプロイ前のフックを使用してこれを設定することが答えになります。
もちろん、他のアイデアにもまだオープンです:-)