我知道这是一个非常不好的问题,但我找不到任何解决scheme,尽pipe发现问题微不足道。
我有一个Django应用程序与gunicorn部署。 nginx服务器使用以下URL提供静态文件: myserver.com/static/admin/css/base.css 。 然而,我的django应用程序继续寻找在myserver.com:8001/static/admin/css/base.css的静态文件,显然是失败的(404)。
我不知道如何解决这个问题。 这是一个Django的或Nginx的问题? 这是我的nginxconfiguration文件:
server { server_name myserver.com; access_log off; location /static/ { alias /home/myproject/static/; } location / { proxy_pass http://127.0.0.1:8001; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; } }
谢谢您的帮助 !
我不知道你为什么在你的configuration中有这个。 它什么都不做。
proxy_set_header X-Forwarded-Host $server_name;
无论如何,你并没有通过Host头,这是我能想到为什么你的url被破坏的最可能的原因。
尝试设置:
proxy_set_header Host $http_host;
首先确保在settings.py中禁用了debug
DEBUG = False
检查你的path到静态文件和URL(例如)
`STATIC_URL ='/ static /'
STATICFILES_DIRS = {“/ home / myproject / static /”,}`
在nginx(ex)中定义你的静态url:
location /static/ { alias /home/myproject/static/; expires 1d; }
不是django问题,而是nginx代理configuration
这个问题与这个问题非常相似:(我直接粘贴链接,因为它是serverfault上的内部链接,不想复制答案)
从nginxredirect中删除端口
也许甚至添加proxy_redirect off; 到locationconfiguration诀窍。