Pagespeed rewrite_javascript 除 1 个 js 文件外的所有内容

Pagespeed rewrite_javascript everything except 1 single js file

rewrite_javascript 缩小 JS 文件的模块有一个小问题。这个功能很棒,因为如果我们清除缓存,pagespeed 还会为每个文件生成一个新的 URL,从而使我们能够通过 pagespeed 的 ShardDomain

轻松使用 Cloudfront 缓存

但是我的一个文件 /js/min/app/common.js" 遇到了一个问题,尽管它下面的文件已经被重写,但它根本没有被重写。

我只是不明白为什么会这样。

是否有人遇到同样的问题并找到了解决方案?

谢谢

更新:

很抱歉这个问题占用了您的时间。我 post 这里是我的 pagespeed 配置的详细信息:

在 HTTP 块中,我有:

pagespeed InPlaceResourceOptimization on;
pagespeed PreserveUrlRelativity on;
pagespeed ForceCaching on;
pagespeed InPlaceRewriteDeadlineMs 100;

pagespeed EnableFilters collapse_whitespace;
pagespeed EnableFilters recompress_images;
pagespeed EnableFilters convert_meta_tags;
pagespeed EnableFilters prioritize_critical_css;
pagespeed EnableFilters extend_cache;
pagespeed EnableFilters rewrite_css,sprite_images;
pagespeed EnableFilters rewrite_javascript;
pagespeed EnableFilters extend_cache;

pagespeed GlobalStatisticsPath /pagespeed_global_statistics;
pagespeed GlobalAdminPath /pagespeed;
pagespeed EnableCachePurge on;

默认情况下,Pagespeed 不会重写 JavaScript 个被视为 "introspective" 的文件。如果您阅读 the Pagespeed docs 它指出:

...a JavaScript file that calls document.getElementsByTagName('script') will not be rewritten

查看您的 common.js 文件,有些行包含函数调用 document.getElementsByTagName('script')。这就是 Pagespeed 不会重写文件的原因。

如果您想禁用此 Pagespeed 检查,请在您的 nginx 配置中添加以下行:

pagespeed AvoidRenamingIntrospectiveJavascript off;

Pagespeed docs 中的更多信息。