Heroku和whitenoise的静态文件错误 - 运行收集静态

时间:2017-11-08 18:33:55

标签: django heroku

我将一个Django应用程序重新部署到heroku,现在我正在收到静态文件问题:

ValueError: Missing staticfiles manifest entry for 'css/styles.min.css'

升级boto时出错(用于媒体文件而非静态文件)。所以转向收集heroku上的静态:

heroku config:set DEBUG_COLLECTSTATIC=1

修正错误后,我手动运行:

heroku run python manage.py collectstatic --noinput

处理没有输出问题的静态文件: 239 static files copied to '/app/staticfiles', 263 post-processed

包括: Post-processed 'css/styles.min.css' as 'css/styles.min.f0168a3a1535.css'

我在我的基本模板中引用导致错误的文件: <link href="{% static 'css/styles.min.css' %}" rel="stylesheet" id="theme-style">

我使用生产设置在heroku上使用白噪声:

WHITENOISE_MIDDLEWARE = ('whitenoise.middleware.WhiteNoiseMiddleware', ) MIDDLEWARE = WHITENOISE_MIDDLEWARE + MIDDLEWARE WHITENOISE_MAX_AGE = 60 * 60 * 24 * 365 * 10 # 10 yrs STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

并且要求有whitenoise==3.3.1

我不清楚是什么导致了这个问题或者如何最好地解决,因为我已经检查了我能想到的一切。

1 个答案:

答案 0 :(得分:2)

使用collectstatic运行heroku run将无法按照您期望的方式运行。每个heroku run命令都在自己的容器中运行,一旦命令完成,对文件系统所做的任何更改都将被丢弃。

您需要重新启用collectstatic,然后将项目的新版本推送到Heroku,以便重建它。