我正在预压缩资产(js 和 css),并将这些文件.gz
与原始文件一起存储在目录中/build
。当我将以下内容添加到我的 nginx 配置中时,压缩的静态资产即可正常工作:
location /build {
gzip_static on;
}
我还尝试为我的所有资产(在所有目录中)设置缓存策略,并将其添加到我的配置中(位于前面的代码下方):
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf)$ {
expires 30d;
access_log off;
}
这也有效。但是,我的压缩.gz
文件现在不再可用。gz
从选择器中删除不会改变任何内容。为什么会发生这种情况,我如何在提供压缩文件的同时为我的资产设置到期时间?
答案1
location
nginx 只会选择一个块,匹配正则表达式位置优先于静态前缀。因此,当提供静态资产时,location ~* <etc>
将使用块,其中不包括设置gzip_static on
。将其复制到静态资产块中,一切将再次正常工作。