我刚刚更新了我的网站的图标,我的 nginx 日志中充斥着类似的错误open() "/home/ubuntu/myapp/myproj/img/favicons/site.webmanifest" failed (2: No such file or directory), client: 131.191.99.143, server: example.com, request: "GET /static/img/favicons/site.webmanifest?v=2 HTTP/1.1"
。
根据此错误,GET 请求是/static/img/favicons/site.webmanifest?v=2
导致 nginx 尝试打开的。Nginx由于某些奇怪的原因/home/ubuntu/myapp/myproj/img/favicons/site.webmanifest
跳过了目录。static
换句话说,这个错误确实是正确的——实际位置是/home/ubuntu/myapp/myproj/static/img/favicons/site.webmanifest
(注意static
文件夹)。
如何更改 nginx 配置以解决此问题?请注意,我正在使用 nginx 作为反向代理以及 gunicorn 应用程序服务器(它是一个 Django 应用程序)。
答案1
我调整了以下服务器块:
location /static {
access_log off;
alias /home/ubuntu/myapp/myproj;
}
并将其改为:
location /static {
access_log off;
root /home/ubuntu/myapp/myproj;
}
现在,这可以正确映射我的文件夹的位置/static/
,并且错误消失。
对于初学者来说,请注意root
指令确保位置是,/home/ubuntu/myapp/myproj/static
而使用alias
产生/home/ubuntu/myapp/myproj