【问题标题】:Location block is ignored位置块被忽略
【发布时间】:2014-01-16 23:17:05
【问题描述】:

我测试了 nginx,但遇到了一个严重的问题。不知何故,位置标签无法捕捉到我的 uri。当浏览器或我手动尝试访问本地主机上的 /favicon.ico 时,它只会引发 404 错误。配置如下代码:

server {
    listen       80;
    server_name  localhost;
    root         www;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

location / {
    index    index.html index.php;
}

    location = /favicon.ico {
    alias alias /assets/images/favicon.ico;
}

...错误日志如下所示:

2014/01/17 00:05:18 [错误] 7408#10036: *82 CreateFile() "C:\Users\user\Webb\nginx/www/favicon.ico" 失败 (2: FormatMessage()错误:(15105)),客户端:127.0.0.1,服务器:本地主机,请求:“GET /favicon.ico HTTP/1.1”,主机:“本地主机”

日志证明location块被忽略了,因为nginx查找文件的路径不是别名指向的那个。

【问题讨论】:

    标签: nginx location favicon


    【解决方案1】:

    AFAIK nginx 别名如下:

    alias <the base path>
    

    意味着你用它告诉 nginx URI 中你的第一个“/”左边的部分。

    例子。假设我在 /var/www/html/images 中有我的图像,并且我的应用程序将 apic.jpg 称为 http://app.com/pictures/apic.jpg ,那么我要做的是:

    location ^/pictures {
      alias /var/www/html/images;
    }
    

    希望这会有所帮助。

    【讨论】:

    • 嗯,问题在于路径必须相对于 nginx.exe,但我认为它是相对于根目录的。使用路径“www/assets/images/favicon.ico”解决了问题。我还注意到,如果你先写一个斜线,它将使用计算机的根作为根。无论如何,感谢您的回复,它帮助我做对了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2021-08-23
    • 2019-08-07
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多