没有这样的文件或目录错误(nginx)

没有这样的文件或目录错误(nginx)

我刚刚更新了我的网站的图标,我的 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

相关内容