django-compressorの使用に頭を悩ませるのに本当に苦労しています。
これが私が達成しようとしていることです:
静的ファイルとアセットの分離(LESS、Coffeescript)
LESSCSSファイルとCoffeescriptファイルをアセットディレクトリに分割したい
例えば
app
└── assets
├── coffee
│ └── script.coffee
└── less
└── style.less
画像などの静的アセットを静的ディレクトリに残す
例えば
app
└── static
├── hello.txt
└── photo.jpg
これを行うために、アセットパスをSTATICFILES_DIRS変数に追加して、django-compressorがファイルを検索できるようにしました(これは期待どおりに機能します)。これは正しいアプローチですか?私はdjango-compressor専用の独立したロードパスを見つけようとしていましたが、これらのアセットを静的なものとして使用するつもりはないため、運がありませんでした。
本番デプロイメント用のファイルのコレクション
本番環境にデプロイするために、コンパイルされたCSSファイルとJSファイルを、app / staticディレクトリ内の他のメディア(画像など)とともにapp/static-prodディレクトリに収集します。ただし、collectstaticコマンドを使用するとアセットも収集されるため、これはうまく機能しません。
例えば
(django-cpython)fots@fotsies-ubprecise-01:~/django_learning$ ./manage.py collectstatic --noinput
Copying '/home/fots/django_learning/app/assets/less/style.less'
Copying '/home/fots/django_learning/app/assets/less/import.less'
Copying '/home/fots/django_learning/app/assets/coffee/script.coffee'
Copying '/home/fots/django_learning/app/static/photo.jpg'
Copying '/home/fots/django_learning/app/static/hello.txt'
5 static files copied.
この./manage.py compress
コマンドを使用すると、コンパイルされたファイルのみが取得され、この例ではphoto.jpgやhello.txtは取得されません。
これを行うために私が見つけた唯一の可能な方法は、collectstaticで--ignoreフラグを使用することです。
例えば
(django-cpython)fots@fotsies-ubprecise-01:~/django_learning$ ./manage.py collectstatic --noinput --ignore=less --ignore=coffee
Copying '/home/fots/django_learning/app/static/photo.jpg'
Copying '/home/fots/django_learning/app/static/hello.txt'
2 static files copied.
また、 COMPRESS_ROOTおよびCOMPRESS_URL構成変数をいじりましたが、これらはさらに問題を引き起こすだけです。COMPRESS_ROOTを変更すると、collectstaticの問題は解決されますが、compressコマンドを使用すると、生成されたファイルは静的ファイルとは異なる場所に配置されます。
これらのソリューションは、ほとんどエレガントに見えません。これを行うためのより良い方法はありますか?何かが足りないような気がします。
助けてくれてありがとう:)