我在本地机器上通过gunicorn运行django项目的开发。出于reason™,我想将nginx设置为它的代理。到目前为止,好的:
location /intranet {
return 301 /intranet/;
}
location /intranet/ {
rewrite ^/intranet(.*) /$1 break;
proxy_redirect default;
proxy_pass http://127.0.0.1:8000;
}
这很好地解决了这个问题。但是,没有一个静态文件被切断:我得到的只是404。
如何修改上述nginx配置,以便切断静态内容?
请注意,使用https::127.0.0.1:8000
,静态文件可以正常使用。
答案 0 :(得分:1)
在项目中,您应该指向URL:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
如果您在每个应用程序中都有一个静态文件夹,则可以使用:
python manage.py collectstatic
这会抓取所有静态文件并将它们放在同一个静态文件夹(STATIC_ROOT)
上然后你的Ngnix也必须知道存储statifiles的位置
server {
access_log /pathto/log/acces.log;
error_log /pathto/log/error.log;
server_name ******
charset utf-8;
location /static {
alias /path/to/your/static; <---- This Line
}
location /intranet/ {
rewrite ^/intranet(.*) /$1 break;
proxy_redirect default;
proxy_pass http://127.0.0.1:8000;
}
}