这是我的 nginx 配置:
server {
listen 80;
server_name example.com;
location /assets {
root /var/www/frappe/sites/assets;
try_files $uri $uri/ =404;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
}
}
我希望 /assets 目录由 NGINX 处理,而其他所有内容由在 8000 上运行的 python 服务器处理。但是,我在 assets 目录上仍然得到 404。
我做错了什么?www-data 可以读取 assets 目录。
答案1
你明白了吗全部对 下的资源的请求出现 404 错误/assets
?我猜你可能想改为root
,alias
因为location /assets
会将root
整个请求路径附加到指定的目录,这意味着 nginx 正在寻找/var/www/frappe/sites/assets/assets/site.css
,例如 。
答案2
使用alias
而不是root
。你甚至不需要try_files
?
location /assets/ {
alias /var/www/frappe/sites/assets/;
}