誰かが簡単に答えられるかもしれない何かを修正しようとして私の人生の数え切れないほどの時間を無駄にする前に、私はこれをここに投稿すると思いました。 django-compressorを使用しており、COMPRESS_OFFLINE = Trueに設定すると問題が発生します。 以下にランダムにエラーが発生しているようです。 ページが読み込まれることもあれば、読み込まれないこともあります。 COMPRESS_OFFLINE = Falseで完全に正常に動作します。
You have offline compression enabled but key "cdfe134683bd23a2ea9de19b46490a13" is missing from offline manifest.
これが私たちのセットアップの詳細です。
Django 1.6.3
django-compressor 1.3
google-cloud-storage 0.3
Nginx
Gunicorn
Google Cloudを使用して、コンプレッサーのキャッシュを含む静的コンテンツを提供しています。 コンプレッサーの設定は次のとおりです。
STATIC_URL = 'https://xxxxx.storage.googleapis.com/static/'
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
COMPRESS_STORAGE = 'google_folder_storage.google.CacheStorage'
CACHE_GOOGLE_PATH = "cache"
COMPRESS_URL = STATIC_URL
COMPRESS_CSS_FILTERS = [
'compressor.filters.css_default.CssAbsoluteFilter',
'compressor.filters.cssmin.CSSMinFilter',
]
{%compress js inline%}の問題を特定しましたが、今はそれを使用しないと思います
これは通常、 {% compress %}
ブロック内に動的コンテンツがあること、またはCOMPRESS_OFFLINE_CONTEXT
渡さなかった変数があることを意味します。 テンプレートやマニフェストなど、デバッグするにはもっと見る必要があります。
いくつかの問題がありました。 1つ目は、GS_FILE_OVERWRITE = Falseで、コンパイルするたびに異なるバージョンのマニフェストを作成していました。 たとえば、manifest_1.jsonを作成していました。 GS_FILE_OVERWRITE = Trueでcompress_settings.pyを作成し、その設定ファイルでコマンドを実行することで、これを解決しました。
次の問題は、{%compress js inline%}に変数があることが原因でした。 この問題は今すぐ解決できると思います。
最も参考になるコメント
これは通常、
{% compress %}
ブロック内に動的コンテンツがあること、またはCOMPRESS_OFFLINE_CONTEXT
渡さなかった変数があることを意味します。 テンプレートやマニフェストなど、デバッグするにはもっと見る必要があります。