2017-05-08 85 views
2

我使用django-storagesManifestStaticFilesStorage的組合來服務器靜態文件和S3介質。Django ManifestStaticFilesStorage不加載正確的靜態文件

class StaticStorage(ManifestFilesMixin, S3BotoStorage): 
    location = settings.STATICFILES_LOCATION 

當我運行collectstatic我可以看到我的JS文件的S3的最新版本與正確的時間戳。

我還可以看到該文件在staticfiles.json清單中被引用。

但是看着在瀏覽器我仍然看到舊JS網站被推倒,沒有一個在manifest

可能是什麼回事?

+0

同樣的問題對我來說。我正在檢查WhiteNoise,而不是 – Rani

+0

你是否最終找出了這個問題? –

回答

0

您可以閱讀this post瞭解更多信息。總之:

默認staticfiles.json將駐留在STATIC_ROOT這是所有靜態文件都收集在 目錄我們主機上的S3存儲在默認情況下 意味着staticfiles.json我們所有的 靜態資產。最終會同步到S3。

所以如果你的staticfiles.json被緩存,你的靜態文件將是舊的。

有2種方法來解決這個問題:

  • Versionize staticfiles.json像您已經在與您的靜態文件做
  • 保持staticfiles.json在本地,而不是S3