我正在设置我的Django项目以使用uwsgi和nginx。对于静态内容,我在我的nginx.conf中有以下内容:
location /static {
alias /Users/me/mystatic; # your Django project's static files - amend as required
}
我已将STATIC_ROOT
设置为/Users/me/mystatic
并调用collectstatic
将所有静态文件复制到该目录中。在我的uwsgi日志中,我看到了静态内容的GET请求。由于nginx应该提供静态内容,为什么GET请求被发送到uwsgi?
答案 0 :(得分:2)
确保STATIC_URL
设置为"/static/"
。
nginx conf看起来应该是这样的:
server {
listen 80 ;
server_name XXXX;
client_max_body_size 4G;
location /static/ {
alias <path-to-collectstatic>
}
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi_web.sock;
}
}
请注意在/
location
块中附加static
最后,请确保应用程序服务器正在DEBUG
作为False
答案 1 :(得分:0)
问题是我在/usr/local/etc/nginx/sites-enabled
中放置了自己的nginx.conf,而不是/usr/local/etc/nginx/servers
。在/usr/local/etc/nginx/nginx.conf
中,include servers/*;
即将结束。因此,UWSGI仍在提供静态文件。我跟着django-nginx-uwsgi tutorial,我假设我必须创建一个新的sites-enabled
目录。我正在使用OS X.
我在Linux上看到,/etc/nginx/nginx.conf
最后包含include /etc/nginx/sites-enabled/*;
,因此本教程中的步骤适用于Linux。
/
末尾的额外/static
没有什么区别,但是在所有路径的末尾都没有它会受到伤害。