gpt4 book ai didi

ruby-on-rails - 为什么 Google PageSpeed Insights 告诉我缩小 javascript 和 CSS(使用 Rails 3.2 和 JS 和 CSS 压缩)以及如何修复?

转载 作者:行者123 更新时间:2023-12-01 22:18:04 25 4
gpt4 key购买 nike

我知道我可以节省的 KB 数量不多,但为了在 Google PageSpeed Insights 中获得更好的分数,从而可能获得更好的 SEO 排名,我该如何解决这个问题?

来自https://developers.google.com/speed/pagespeed/insights/?hl=en&url=www.tradebench.com :

Minify JavaScript for the following resources to reduce their size by 2.8KiB (2% reduction). Minifying http://d2bfamm4k6zojq.cloudfront.net/…tion-ea806932c941fb875b7512a557ebead3.js could save 2.8KiB (2% reduction) after compression.

对于我的 CSS 文件,它告诉我同样的事情。

来 self 的 production.rb 文件:

config.assets.compress = true
config.assets.js_compressor = Uglifier.new(:mangle => true)
config.assets.css_compressor = :yui

查看 uglifier 文档/选项,我不知道如何配置它来获取最后 2KB。

有人知道如何让它压缩最后一点点以删除有关它的 PageSpeed 通知吗?也许使用 Uglifier 之外的其他压缩器?

谢谢:-)

最佳答案

如果您只检查缩小的 js,您会发现代码已缩小,但您包含的每个 js 库在顶部都有自己的版权和许可信息(这是正确的),如以下代码片段:

/**
* Copyright 2009 SomeThirdParty.
* Here is the full license text and copyright
*/

如果您确实希望在您的 Rails 应用程序上实现完全缩小,并摆脱页面速度洞察的 2% 额外压缩通知,您可以通过以下设置来实现:

config.assets.js_compressor = Uglifier.new(copyright: false)

config.assets.js_compressor = Uglifier.new(output: { comments: :none })

注意1:以上两项都会最小化您的application.js,而无需任何注释。

注意2:通过上述两项设置,uglifier 会从缩小的 js 中删除所有版权信息,从而您的应用达到 google pagespeed 所需的总缩小程度,并且您将获得 +1 分你的分数。

但是,您不应避免包含您正在使用的代码的版权。大多数许可证(MITBSDGPL...)要求您在重新分发库时保留版权和许可信息。当您允许浏览器从您的服务器或 CDN 下载库的压缩副本时,算作您重新分发库。因此,您应该在应用程序的某个位置包含版权和许可信息

如何

您可以做的一件事是收集您在应用程序上使用的 js 库的所有版权信息,并将它们全部添加到 licenses.txt 中,并将其放在您的公共(public)文件夹中。您的 public/licenses.txt 应如下所示:

/**
* Unobtrusive scripting adapter for jQuery
* https://github.com/rails/jquery-ujs
*
* Requires jQuery 1.8.0 or later.
*
* Released under the MIT license
*
*/
[...and the rest copyrights here one after the other]

然后通过使用链接标记指定该文件在应用程序的 html 头部的位置(layouts/application.html):

<head>
<!-- License information of used libraries -->
<link rel="license" href="../licenses.txt">
</head>

rel=license表示:当前文档的主要内容受到引用文档描述的版权许可的保护。

最后,如果你想更正确地理解这一点,你应该在缩小的 application.js 上只包含一条注释,以便让某人准确地找到所有版权信息(以防万一......)。为此,请在 application.js 文件顶部添加以下注释:

/*!LC
* Copyright and Licenses: http://www.example.com/licenses.txt
*/

因此您的 application.js 可能如下所示:

/*!LC
* Copyright and Licenses: http://www.example.com/licenses.txt
*/
//= require jquery
//= require jquery_ujs
//= [..rest of your requires]

注意:我在开头用 !LC 来区分此评论。您需要这个来将 regexp 传递给丑化器,以便它允许在缩小的 js 上ONLY THIS comment。为此,请转到 Production.rb 并放置以下内容:

config.assets.js_compressor = Uglifier.new(output: { comments: /^!LC/ })

Uglifier 只允许在缩小的 js 文件顶部添加 !LC 注释,您不会因为只有一条注释而收到关于页面速度洞察的警告。如果你做到了所有这些,你就会完全没问题,你在页面速度洞察方面获得满分,你已经完全缩小了 .js 以实现最佳交付,并且你拥有所有版权以解决任何法律问题。

关于ruby-on-rails - 为什么 Google PageSpeed Insights 告诉我缩小 javascript 和 CSS(使用 Rails 3.2 和 JS 和 CSS 压缩)以及如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com