我有一台运行django的实时服务器,地址为http://179.188.3.54/。正如您所看到的,该应用程序可以工作,但看起来静态文件不起作用。此外,如果我点击任何其他链接,不起作用。
此网站在开发版本中运行时没有任何问题。我不知道该怎么做才能解决这个问题。
这是我的nginx配置文件和我的settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/cinegloria/cinegloria/cinegloria/static/'
PS:我试图运行collectstatic;)
server {
root /usr/share/nginx/www;
index index.html index.htm;
access_log /var/log/nginx/domain-access.log;
server_name 0.0.0.0;
location / {
try_files $uri $uri/ /index.html;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://0.0.0.0:8000/;
}
}
任何想法或示例代码将不胜感激!
答案 0 :(得分:1)
在/
模式之前将静态服务添加到nginx conf:
location /static {
alias /cinegloria/cinegloria/cinegloria/static/;
}
location / {
...
}
或者将STATIC_ROOT
设置为www root:
STATIC_ROOT = '/usr/share/nginx/www/static'
或者将www root的符号链接添加到静态目录:
$ ln -s /cinegloria/cinegloria/cinegloria/static /usr/share/nginx/www/static
答案 1 :(得分:1)
为静态文件添加另一个nginx指令。静态文件应该由nginx提供,而不是Django服务器。
location /static/ {
alias /cinegloria/cinegloria/cinegloria/static/;
}
如果仍然无效,则可能需要添加mime类型指令。我昨天必须这样做,因为出于某种原因,当我使用别名时,nginx并没有提供正确的mime类型。
作为一个有用的指针,每当遇到这样的问题时,请查看你的nginx错误日志并粘贴最后几行进行调试。它位于/var/log/nginx/error.log或类似的路径。