Nginx无法从django加载静态文件

时间:2017-11-24 16:11:53

标签: django python-2.7 nginx gunicorn

家庭,我有点麻烦使django收集的nginx服务器加载静态文件。这是我的nginx网站 - 可用

server {
        listen 80;
       server_name <my_ip_address>;

    location / {

           proxy_pass http://127.0.0.1:8000;
           proxy_set_header X-Forwarded-Host  $server_name;
           proxy_set_header X-Real-IP         $remote_addr;

        }

  location /asset/ {
            autoindex on;
            alias /var/www/html/dev2_assets/;
           }
  }

这里是我的Django STATIC_URL和STATIC_ROOT配置

STATIC_URL = '/assets/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "assets"),
)

STATIC_ROOT = '/var/www/html/dev2_assets/'

当我使用./manage.py运行服务器运行应用程序时,它会加载所有静态文件。任何帮助。感谢

1 个答案:

答案 0 :(得分:0)

您的问题是您的位置。

您没有为它指定根,也在您的settings.py中为您的申报资产指定,但在您的位置您的申报资产缺少s。尝试将其更改为:

location /assets/ {
        autoindex on;
        root /var/www/html/dev2_assets;
    }

另外,为了便于调试,请尝试添加以上位置:

error_log /var/log/nginx/error.log;

然后,您将收到有关它无法检索静态文件的特定错误消息。

最后你确定你的uginlyzing nginx,django和gunicorn是否正确?

以下是我的网站文件的副本供比较:     #这会将端口80上的所有传入流量重定向到443     服务器{            听80;            server_name domain.com;            return 301 https:// $ server_name $ request_uri;     }

server {

listen   443;

ssl    on;
ssl_certificate    /etc/ssl/domain.com.chained.crt;
ssl_certificate_key    /etc/ssl/domain.com.key;

server_name helius.dk;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
#location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
        root /home/user/projectname/static;
    }


    location / {
        include proxy_params;
        proxy_pass http://unix:/home/user/projectname/gunicorn.sock;
    }

}