Skip to content
旧时的足迹
Go back

Asset-Pipeline

编辑此页

Asset Pipeline 提供了一个框架,用于连接、压缩 JavaScript 和 CSS 文件,以及优化浏览器缓存。

Asset Pipeline 的第一个功能就是连接合并静态资源,用以减少渲染页面时浏览器发起的请求数,同时也可以提升页面加载速度。在把所有 JavaScript 文件合并到一个主 .js 文件,以及把所有 CSS 文件合并到一个主 .css 文件后,它有一个非常重要的动作就是它会在文件名后加上 MD5 指纹,上次分享中提到过这样做的好处,就是我们可以利用Cache-Control的策略并把max-age设的足够大来使浏览器一直能够使用缓存直到资源过期,而当资源发生改变后其MD5指纹将会改变,此时浏览器缓存将自动过期。

上次提到的请求连接后接请求字符串的方式出了上次提到的缺点外还有几处缺陷:首先使用请求字符串时,在集群环境中不同的服务器节点上的文件名可能是不相同的,由于目标字符串多是利用最后修改时间来生成的,那么由于部署新版代码时,所有静态资源文件的最后修改时间都将改变,即便内容没变,客户端也要重新请求这些文件,最后就是有些 CDN 验证缓存时根本无法识别请求字符串。

Asset Pipeline还可以压缩静态资源,删除CSS文件中的空白和注释以及对JavaScript 的定制处理。 Asset Pipeline还允许允许使用高级语言编写静态资源再使用预处理器转换成真正的静态资源。


编辑此页
Share this post on:

Previous Post
Index-Of-MqSQL-I
Next Post
HTTP 缓存