【问题标题】:Nginx: serving static files by URL pathNginx:通过 URL 路径提供静态文件
【发布时间】:2014-01-14 04:13:33
【问题描述】:

有没有办法只通过一些 URL 路径来提供静态文件?例如,下一个 URL 模式 http://host/static/*.png 具有 /static/ 子字符串(路径),Nginx 将从那里提供任何静态信息。

在网络服务器文档中我找到了一个例子:

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js)$ { ...

并像这样定义我的 Nginx 配置:

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /apib {
         #some proxy_pass
    }

    location /apim {
         #some proxy_pass
    }

    location /api {
         #some proxy_pass
    }

我尝试使用根目录/var/www/some_statics*/static/*.* 添加额外的location

【问题讨论】:

    标签: nginx webserver static-files serving


    【解决方案1】:
    location ~* ^/static/.+\.(png|whatever-else)$ {
        alias /var/www/some_static;
        expires 24h;
    }
    location / {
        # regular rules
    }
    

    手写,可能有错误。

    如果您想扩展规则以匹配anything/something/static/*.png,只需删除模式中的^

    【讨论】:

    • Nginx 从配置中的服务器部分发送索引页面(根)。
    • @akrisanov 没错。它们继承自上层配置,除非在块内由 rootalias 指定。
    • d.pr/i/ViNT 我的意思是,您的解决方案不起作用。我现在的完整配置:gist.github.com/akrisanov/8413535
    • 你重新加载配置/重启nginx了吗?你也可以试试location /static/ { alias /var/www/some_static; } 或阅读this
    【解决方案2】:

    location ^~ /static/ {
        alias /var/www/some_static;
    }

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2022-12-17
      相关资源
      最近更新 更多