【问题标题】:How do Minify, mod_pagespeed... handle merging javascript filesMinify、mod_pagespeed...如何处理合并javascript文件
【发布时间】:2011-10-15 11:25:58
【问题描述】:
在 page1.html 上说我需要 mootools.js 和 main.js...我猜这些工具应该生成一个缩小的 js 文件(比如 min1.js)。
然后在 page2.html 我需要 mootools.js、main.js 和 page2.js ......这些工具是否提供 min1.js (已经被浏览器缓存)和 page2.js ?或者他们是否将这 3 个 .js 文件组合起来并提供需要被浏览器再次完全缓存的缩小文件?
谢谢
【问题讨论】:
标签:
performance
optimization
mod-pagespeed
【解决方案1】:
假设您使用的是 Apache 模块 mod_pagespeed,因为您用它标记了问题,但没有提及您是否使用...
如果打开ModPagespeedEnableFilters combine_javascript(默认为禁用),它会在整个页面上运行。根据documentation:
此过滤器生成的 URL 本质上是
正在合并的所有 CSS 文件的 URL。
page1.html 将结合 mootools.js、main.js 和 page1.js; page2.html 将是 mootools.js、main.js 和 page2.js。
那么回答你的问题,是的,它会缓存重复的 JavaScript 文件的多个副本。
然而,
默认情况下,过滤器会将来自的脚本文件组合在一起
不同的路径,将组合元素放置在最低级别
两个起源的共同点。在某些情况下,这可能是不可取的。你
可以通过以下方式关闭该行为:ModPagespeedCombineAcrossPaths off
如果您保留此行为,并将文件分散在您想要组合的路径中,您可以将它们分开,以便将通用脚本组合为一个,而单独的脚本将自行组合。这将减少大型通用库的重复。