在过去的几个小时里,我一直在搜索Stack Overflow以获得修复,但是大多数关于Server Error 500的帖子都无法为我提供修复。 Django找不到静态图像并返回500.图像是静态/ css /图像。
例如,我试图获得https://monkeyparliament.herokuapp.com/about/。日志返回:
2019-02-10T17:09:33.362724+00:00 app[web.1]: ValueError: Missing staticfiles manifest entry for 'css\images\donate.png'
2019-02-10T17:09:33.363611+00:00 app[web.1]: 10.31.121.50 - - [10/Feb/2019:17:09:33 +0000] "GET /about/ HTTP/1.1" 500 27 "https://monkeyparliament.herokuapp.com/music/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36"
但是当我https://monkeyparliament.herokuapp.com/music/时,它似乎可以在静态文件夹中找到css / js / fonts。随意检查页面源。
我的静态图像由WhiteNoise(http://whitenoise.evans.io/en/stable/)提供。如您所见,WhiteNoise符合要求。 settings.py中的MIDDLEWARE在django.middleware.security.SecurityMiddleware'下面添加了“whitenoise.middleware.WhiteNoiseMiddleware”。
为什么找不到我的图片?
Procfile
web: gunicorn websitemp.wsgi:application --log-file -
Requirements.txt
dj-database-url==0.5.0
Django==2.0.10
gunicorn==19.9.0
psycopg2==2.7.7
pytz==2018.9
whitenoise==4.1.2
结构体
网站是应用程序,websitemp是项目
Github上的项目
如果你想看到完整的结构,你可以找到github上的所有文件:https://github.com/DennisVerstappen/websitempdjango
提前致谢!
在主目录中创建一个空文件夹staticfiles。
然后运行python manage.py collectstatic
之后,它应该填充所有应用程序的所有静态资产。
注意:为了保持分离,您实际上可以将静态文件夹移动到网站应用程序中 - 不应该有所作为
谢谢你的思考。在尝试你的解决方案后,我注意到了斜线
{% static 'css\images\donate.png' %}
与日志中其他Python文件中的斜线不同。将反斜杠更改为forwardslashes解决了我的问题。我使用的文件夹系统表示法(Windows)与Heroku使用的不同。使用下面的符号工作。
{% static 'css/images/donate.png' %}