代理传递时如何让NGINX读取静态文件目录

这是我的nginxconfiguration:

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服务器处理。但是,我仍然在资产目录上获得了404。

我究竟做错了什么? assets目录可以通过www-data读取。

/assets下的资源请求是否得到所有的 404? 我怀疑你可能想要在root location /assets改变root alias ,因为root将整个请求path追加到指定的目录,这意味着nginx正在寻找/var/www/frappe/sites/assets/assets/site.css ,例如。

使用alias代替root 。 你甚至不需要try_files

  location /assets/ { alias /var/www/frappe/sites/assets/; }