我将一个 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
导致了这个问题,也不清楚如何最好地解决,因为我已经检查了我能想到的一切。
使用 heroku run
运行collectstatic
不会以您期望的方式工作。每个heroku run
命令都在自己的容器中运行,一旦命令完成,对文件系统所做的任何更改都将被丢弃。
您需要重新启用 collectstatic 并将项目的新版本推送到 Heroku,以便重新构建它。