Windows nginx配置赢得';不要交付静态资产

Windows nginx配置赢得';不要交付静态资产,windows,nginx,static,assets,Windows,Nginx,Static,Assets,我希望通过虚拟目录交付静态资产,但我遇到了以下两个问题 我被重定向到一个URL,其中nginx希望在文件名和 系统认为我需要一个目录列表而不是一个文件,这导致nginx做了错误的事情 error.log文件中的示例: 2014/04/24 11:21:37 [error] 6808#6952: *15 directory index of "E:/fileserver/intranet/" is forbidden, client: 192.168.110.79, server: intraTe

我希望通过虚拟目录交付静态资产,但我遇到了以下两个问题

  • 我被重定向到一个URL,其中nginx希望在文件名和
  • 系统认为我需要一个目录列表而不是一个文件,这导致nginx做了错误的事情
  • error.log文件中的示例:

    2014/04/24 11:21:37 [error] 6808#6952: *15 directory index of "E:/fileserver/intranet/" is forbidden, client: 192.168.110.79, server: intraTest, request: "GET /intraStatic/employees/0C0C3E08-5056-A300-0E2C2FF5D437C6A3.png/ HTTP/1.1", host: "intraTest"
    
    我的配置文件中的代码段:

    location ~ /intraStatic/ {
        autoindex  off;
        alias  e:/fileserver/intranet/;
        break;
    }
    
    由于日志包含别名中提到的路径,我知道位置块不会被忽略,但我无法访问其中的文件,即使文件系统权限很好,并且文件存在并且没有被任何东西损坏

    由于谷歌只是回复结果,而每一个结果都比之前的结果更无用,我只能希望这里的人能对此有所了解


    提前感谢您的回复

    来自ngx_http_核心模块:

    如果位置由以斜杠字符结尾的前缀字符串定义,并且请求由proxy_pass、fastcgi_pass、scgi_pass、uwsgi_pass或memcached_pass中的一个进行处理,则响应URI等于此字符串但不带尾随斜杠的请求时,代码为301的永久重定向将返回到请求的URI,并附加斜杠。如果不需要这样做,可以这样定义URI和位置的精确匹配:

    因此,请尝试:

    location ~ /intraStatic {
    

    谢谢大家的回复

    当我几乎沮丧地浏览一个被注释掉的应用程序后面的Tomcat服务器时,我突然想到使用一种更为暴力的解决方案,因为上面的建议在我的情况下似乎不起作用

    最后,我重命名了文件系统文件夹,并采用了以下方法:

    location ~ /intraStatic/ {
        autoindex  off;
        root  e:/fileserver/;
        break;
    }
    

    无论如何,感谢您抽出时间帮助我找到解决方案。

    我已经尽可能地精简了此服务器的配置,但问题仍然存在:我看不到任何可能导致使用尾部斜杠重定向到url的内容。可能是在注释掉的块中的某个地方。我已经注释掉了不相关的内容,停止了服务,确保没有孤立的nginx进程仍在运行,并在问题仍然存在时重新启动它,因此缩短了版本。您的nginx进程有权读取有问题的路径吗?正如我上面提到的,进程所属的服务具有必要的权限,这就是为什么我对该消息感到如此惊讶。此位置由regexp定义,而不是前缀字符串。我忽略了这一点。但是上面定义的尾部斜杠行为是否仍然适用?它不应该适用。但作者并没有给出完整的配置,所以我没什么可说的了。
    location ~ /intraStatic/ {
        autoindex  off;
        root  e:/fileserver/;
        break;
    }