【发布时间】:2019-02-02 16:28:12
【问题描述】:
ngx_pagespeed、mod_pagespeed 和其他在服务器级别优化 javascript/css 的模块可以替代 uglifyjs 或 yui-compressor 等命令行工具吗?
【问题讨论】:
标签: nginx webserver yui-compressor uglifyjs mod-pagespeed
ngx_pagespeed、mod_pagespeed 和其他在服务器级别优化 javascript/css 的模块可以替代 uglifyjs 或 yui-compressor 等命令行工具吗?
【问题讨论】:
标签: nginx webserver yui-compressor uglifyjs mod-pagespeed
是的。 PageSpeed 包括 rewrite_javascript 过滤器,它与 uglifyjs 和 yui-compressor 进行非常相似的缩小。它是安装模块时默认启用的过滤器之一。
【讨论】:
是的,他们可以。但是您无法控制要聚合的内容,*_pagespeed 将根据每页策略进行聚合和缩小。这意味着如果您有两个页面都共享一个基本文件(例如base.css)并且每个页面也都有自己的静态文件(例如page1.css 和page2.css)*_pagespeed 将聚合和缩小两个为您提供不同的缓存文件。这意味着当您的用户从第 1 页转到第 2 页时,他们将拥有主要缓存,因为静态文件已更改。
如果您想要甚至需要完全控制聚合和缩小,答案是否定的,它不能用作替代品。 Google 的 pagespeed 模块主要用于托管公司,这些公司的用户缺乏优化自己资源的能力。这些公司可以大大减少网络流量并改善其托管产品的用户体验。对于专业开发的 Web 项目,您肯定希望自己实现并拥有完全的控制权。
【讨论】:
location 块中来限制资源组合。我什至不确定我最后一次看到一个网站将它拥有的所有 JS 和 CSS 合并到一个或两个文件中...pagespeed 文档建议结合 external CSS 和 JS,而不是特定于站点的资源
如果结合 /minifying 是您的唯一目标,您最好在开发服务器上运行 mod_pagespeed,保存结果并进行部署。 Mod_pagespeed 做得更多,它的附加值是各个部分的总和,而不是单独的组件。
【讨论】:
我们目前正在为 nginx 使用 google pagespeed,它会自动缩小 js。但不是很好 - 与 UglifyJs 3 相比,有 20% 的超大尺寸。
使用 pagespeed 缩小的文件为 248Kb。 如果我们通过 Uglify 3 运行它,它会得到 196 Kb...
【讨论】: