我正在尝试将Django网站与带有Heroku的Django一起部署,并且一直显示“内部服务器错误”。在SO上,关于这个相同问题的其他答案都没有解决我的问题,而且我注意到只有将DEBUG设置为False时,我才会遇到这个问题。
我的heroku日志命令显示以下错误:
raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)
ValueError: Missing staticfiles manifest entry for '/images/posting/bike.png'
我通过以下方式设置了自己的设置:
ALLOWED_HOSTS = ["stratagembetaapp.herokuapp.com"]
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"
django_heroku.settings(locals())
此外,完美安装了gunicorn,django-heroku和whitenoise。我的requirements.txt和Procfile也按顺序排列。
我还已经在Heroku shell中运行了“ python manage.py collectstatic”,但是我仍然得到相同的结果。
答案 0 :(得分:0)
您是否正在使用静态文件服务器?从您的设置来看,您似乎并没有使用它。 Heroku不会存储您的静态文件。这些教程可以引导您完成整个过程。在s3上存储文件不是免费的,但是却非常便宜(前50 TB /月$ 0.023 / GB)
https://www.codingforentrepreneurs.com/blog/s3-static-media-files-for-django/ https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/
答案 1 :(得分:0)
错误是您引用的模板中的静态文件不存在(或不在正确的位置)。在调试模式下,这不会产生错误,但是在生产环境中会产生错误。
在模板中的某处,您具有如下引用:
{% static '/images/posting/bike.png' %}
我认为这里的错误只是斜线,所以如果您仅使用{% static 'images/posting/bike.png' %}
,它可能会起作用。