我将一个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
我不清楚是什么导致了这个问题或者如何最好地解决,因为我已经检查了我能想到的一切。
答案 0 :(得分:2)
使用collectstatic
运行heroku run
将无法按照您期望的方式运行。每个heroku run
命令都在自己的容器中运行,一旦命令完成,对文件系统所做的任何更改都将被丢弃。
您需要重新启用collectstatic,然后将项目的新版本推送到Heroku,以便重建它。