在nginx上缩小html,css和js

bksxznpy  于 2023-03-17  发布在  Nginx
关注(0)|答案(2)|浏览(145)

我正在寻找一个很好的方法来缩小我的css,js和html代码,并发现这个软件包在谷歌https://code.google.com/p/minify/.问题,我有Nginx的Web服务器,这个缩小应用程序需要mod_rewrite只与Apache.我得到了这个消息,当我运行脚本:
您的Web服务器似乎不支持mod_rewrite(用于/min/.htaccess)。您的Minify URI将包含“?",这可能会降低代理缓存服务器的优势。
现在我想知道是否有一种方法,我可以使用这个脚本在我的Nginx服务器或没有?如果没有,那么会是什么替代方案?
我正在寻找缩小css,js和html,使我的网页足够快,使我的客户可以浏览我的网站页面迅速...
你知道吗?
谢谢

更新#1:

我刚刚发现我必须在我的nginx服务器上添加一个重写规则(替换.htaccess规则)来重定向文件夹及其内容。

location / {  

                rewrite ^/min/([a-z]=.*) /min/index.php?$1 last;
}

但是那重定向到错误404...知道正确的代码是什么吗?

bt1cpqcv

bt1cpqcv1#

你的方式实际上是正确的,你的问题很可能是同一个我(我不知道为什么),但基本上它归结为NGINX的重写规则忽略了?旁边的1美元的规则。
解决此问题的一个方法是,只需在f example.com/min/?f=path/to/file.css.前面加上?,而不是转到example.com/min/f=path/to/file.css
更好的方法是将文件作为一个组提供:
为了获得最佳性能,您可以将这些文件作为预定义的组提供,其URI如下:/min/g=密钥名称
为此,在/min/groupsConfig.php中添加一行代码:

return array(
    'keyName' => array('//path/to/js/file.js', '//path/to/js/otherfile.js')
);

但是,您可能需要使用/min/?g=keyName。
顺便说一句,缩小和捆绑不是just ~1kb,它可以(而且往往)多得多。它对用户有巨大的影响(尤其是在移动的设备上)。一个浏览器可以进行6个并发连接,所以如果你有比正在下载的文件更多的文件,用户就在等待它们,我最近在做的一个项目中,大约有60个请求是针对不同的js和css文件的(原来的编码是......插件部门全包)整个页面大概1 Meg,下载未缓存需要3秒(没有缓存任何东西,因为以前的程序员不理解缓存)我把所有东西打包压缩成3个文件(也删除了无用的东西),并将整个页面降至20 KB未缓存,3 KB缓存,未缓存的加载时间低于20 ms。
这是一个糟糕的编码的极端例子。最后一个想法...如果你不进入配置并添加该高速缓存目录和缓存所有的东西,它会导致服务器上的性能轻微下降(虽然,可能没有服务器上的十几个额外的文件那么严重)。我建议启用APC或memcache,或至少指定缓存文件夹,以存储文件。

lh80um4z

lh80um4z2#

我知道这是旧的,但我的工作与旧代码运行minify和有我的开发服务器在nginx,而现场的网站是在apache.我有min目录位于一个子目录,如mywebsite/register/min/.所以为了修复这个与nginx我必须添加位置,修改try_files节,并添加重写在我的nginx网站配置文件,如这样...

location /register/min/ {
   try_files $uri $uri/ /index.php?$query_string;
   rewrite ^/register/min/(.*) /register/min/index.php?$1 permanent;
 }

在那之后,效果很好!我希望这对其他遇到这个的人有帮助!

相关问题