![没有这样的文件或目录错误(nginx)](https://linux22.com/image/721203/%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E9%94%99%E8%AF%AF%EF%BC%88nginx%EF%BC%89.png)
我刚刚更新了我的网站的图标,我的 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