[英]Bypass Django to serve static files with Nginx
我正在尝试使用Nginx提供静态文件,但是Django似乎控制了路径并不断提供404,因为它不是Django应用中的有效URL。
这是Nginx服务器设置:
server {
listen 443;
server_name localhost;
client_max_body_size 500M;
location /static/ {
autoindex on;
root /app/interfaces/web/static;
}
location / {
uwsgi_pass django;
include /app/interfaces/web/django/uwsgi_params;
}
}
我已经尝试了以下所有组合:
/static/
和/static
autoindex on
和不autoindex on
root
和alias
当我尝试访问/ static /目录中的文件时,我从Django收到以下404错误:
找不到页面(404)
请求方法:GET请求
网址: https : //172.16.6.158/static/test.css
Django使用django.urls中定义的URLconf,按以下顺序尝试了以下URL模式:
^ ^ $ [name ='index']
^ history /
^ config /
^ admin /
当前路径static / test.css与任何这些都不匹配。
我也尝试在Django设置中设置STATIC_URL
,但我认为这不是必需的,因为我正尝试绕过Django。 无论如何,它没有任何区别。
有人知道我在做什么错吗? 我是否需要在其他地方更改配置。
更新
Nginx访问日志给出以下错误:
172.16.6.108--[11 / Dec / 2017:11:53:11 +0000]“ GET /static/test.css HTTP / 1.1” 404 3132“-”“ Mozilla / 5.0(Windows NT 6.1; Win64; x64) AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 61.0.3163.100 Safari / 537.36“”-“
错误日志中没有任何内容。
使用的设置:
location /static/ {
alias /app/interfaces/web/static;
}
将此代码放入服务器块中
# Django media location
location /media { alias /home/username/djangoproject/media; }
location /static { alias /home/username/djangoproject/app/static;}
# your Django project's static files `
并且您还需要将静态网址和媒体网址添加到urlpattern .google中,以便在Django中提供静态文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.