【问题标题】:using ngx_pagespeed or mod_pagespeed instead of minifying/optimizing javascript and CSS using a command-line tool使用 ngx_pagespeed 或 mod_pagespeed 而不是使用命令行工具缩小/优化 javascript 和 CSS
【发布时间】:2019-02-02 16:28:12
【问题描述】:

ngx_pagespeed、mod_pagespeed 和其他在服务器级别优化 javascript/css 的模块可以替代 uglifyjs 或 yui-compressor 等命令行工具吗?

【问题讨论】:

    标签: nginx webserver yui-compressor uglifyjs mod-pagespeed


    【解决方案1】:

    是的。 PageSpeed 包括 rewrite_javascript 过滤器,它与 uglifyjs 和 yui-compressor 进行非常相似的缩小。它是安装模块时默认启用的过滤器之一。

    【讨论】:

      【解决方案2】:

      是的,他们可以。但是您无法控制要聚合的内容,*_pagespeed 将根据每页策略进行聚合和缩小。这意味着如果您有两个页面都共享一个基本文件(例如base.css)并且每个页面也都有自己的静态文件(例如page1.csspage2.css*_pagespeed 将聚合和缩小两个为您提供不同的缓存文件。这意味着当您的用户从第 1 页转到第 2 页时,他们将拥有主要缓存,因为静态文件已更改。

      如果您想要甚至需要完全控制聚合和缩小,答案是否定的,它不能用作替代品。 Google 的 pagespeed 模块主要用于托管公司,这些公司的用户缺乏优化自己资源的能力。这些公司可以大大减少网络流量并改善其托管产品的用户体验。对于专业开发的 Web 项目,您肯定希望自己实现并拥有完全的控制权。

      【讨论】:

      • 在工作中我认为我们只是缩小/丑化,将 css 和 js 结合起来并不好玩。但是,pagespeed 文档说您可以通过将资源组合粘贴到 nginx 中的 location 块中来限制资源组合。我什至不确定我最后一次看到一个网站将它拥有的所有 JS 和 CSS 合并到一个或两个文件中...pagespeed 文档建议结合 external CSS 和 JS,而不是特定于站点的资源
      • 没有将尽可能多的人为地合并到尽可能少的文件中,这意味着许多 HTTP 请求,这会极大地降低您的网站速度。即使您使用的是远期过期标头,因为如果用户例如浏览器仍然会要求任何文件的更新版本。重新加载他当前所在的页面,等等等等。像 Drupal 这样的好软件会自动为你做这样的事情,然后你最终只会得到一两个文件。这也应该是您的应用程序的目标。当然你应该自动化这个过程。
      【解决方案3】:

      如果结合 /minifying 是您的唯一目标,您最好在开发服务器上运行 mod_pagespeed,保存结果并进行部署。 Mod_pagespeed 做得更多,它的附加值是各个部分的总和,而不是单独的组件。

      【讨论】:

      • 在我们的例子中不起作用,我们使用的是 Django 开发服务器,在我之前的工作中,我使用的是 Rails,它也有自己的开发服务器:S
      【解决方案4】:

      我们目前正在为 nginx 使用 google pagespeed,它会自动缩小 js。但不是很好 - 与 UglifyJs 3 相比,有 20% 的超大尺寸。

      使用 pagespeed 缩小的文件为 248Kb。 如果我们通过 Uglify 3 运行它,它会得到 196 Kb...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        相关资源
        最近更新 更多