Optimization nginx:首先尝试提供缩小的文件
我试图通过缩小css、js、svg等等来优化我的网站 不过,这会影响我的代码库,我希望保留原始文件。我已经将git设置为自动缩小任何Optimization nginx:首先尝试提供缩小的文件,optimization,url-rewriting,nginx,webserver,Optimization,Url Rewriting,Nginx,Webserver,我试图通过缩小css、js、svg等等来优化我的网站 不过,这会影响我的代码库,我希望保留原始文件。我已经将git设置为自动缩小任何css | js | svg到min.css | min.js | min.svg,但我不会编辑链接到这些文件的每个php或html文件以使用.min.扩展名 为了解决这个问题,我想我可以设置nginx,在使用try\u files指令完成对非精简文件的请求时,自动为文件的精简版本提供服务,如果不存在,则使用非精简文件作为备份 这是一些伪配置来详细说明我的意思: l
css | js | svg
到min.css | min.js | min.svg
,但我不会编辑链接到这些文件的每个php或html文件以使用.min.
扩展名
为了解决这个问题,我想我可以设置nginx,在使用try\u files
指令完成对非精简文件的请求时,自动为文件的精简版本提供服务,如果不存在,则使用非精简文件作为备份
这是一些伪配置来详细说明我的意思:
location \.(css|js|svg) {
try_files $minified_uri $uri;
}
但是我不知道如何在这里获取$minified_uri
(例如,当请求/some/style.min.css
时,会提供/some/style.css
)
此外,如果你认为这种方法真的很糟糕,请随时告诉我为什么,并向我展示一些替代方案 我不能保证它会起作用,但我想你可以试试
location ~ (?<name>[^/]*)\.(?<extention>css|js|svg) {
try_files $name.min.$extention $name.$extention;
}
location~(?[^/]*)\(?css|js|svg){
try_files$name.min.$extention$name.$extention;
}
使用regex变量很容易做到这一点:
location ~ ^(.+)\.(css|js|svg)$ {
try_files $1.min.$2 $uri =404;
}
老实说,我认为只替换代码中的行更快。您可能需要花10分钟来弄清楚如何进行批量替换。