子文件夹中的 nginx 资产

Nic*_*k_K 3 assets ruby-on-rails nginx

我想知道是否有更好的方法来定义 nginx 中的资产路径。例如,我希望 nginx 为子文件夹中的资产提供服务。现在,我使用这种对我来说看起来不太干燥的技术。

location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
}

location ^~ /assets/downloads {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
}
Run Code Online (Sandbox Code Playgroud)

您能否为资产文件夹中的文件夹提出更好的建议?先感谢您。

Kee*_*nce 5

您的配置几乎是正确的(对于您要实现的目标)。由于我没有完整的配置,我会猜测一个解决方案:

location ^~ /assets/ {
    alias /absolute/path/to/assets/;
    gzip_static on;
    expires max;
    add_header Cache-Control public;
}
Run Code Online (Sandbox Code Playgroud)

注意alias指令(以及绝对路径上的尾部斜杠)。这告诉 NGINX 获取 URI 并递归资产目录(在子文件夹中搜索)。它类似于使用roottry_files提供内容时。有关root和之间的差异alias,请参阅此链接