Django无法find由nginx提供的静态文件

我知道这是一个非常不好的问题,但我找不到任何解决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诀窍。