System.Web.Optimization 捆绑 css js 缓存

Posted

技术标签:

【中文标题】System.Web.Optimization 捆绑 css js 缓存【英文标题】:System.Web.Optimization bundling css js caching 【发布时间】:2014-09-25 02:52:40 【问题描述】:

我正在使用 System.Web.Optimization 来捆绑 css 和 js 文件。因此,据我了解 System.Web.Optimization 是在客户端缓存 js 和 css 包,并且效果很好。当页面加载 js 和 css 包时,我第一次检查了我在提琴手上的调用,我得到状态 200,下一次它来自客户端浏览器缓存,提琴手中没有 js 和 css 包的条目。但是对于图像,我每次加载页面时都会保持未修改的状态 304。我想浏览器缓存我所有来自 CSS 的图像。 有谁知道如何使用捆绑 System.Web.Optimization 来做到这一点? 谢谢, 阿尔金森

【问题讨论】:

【参考方案1】:

System.Web.Optimization 捆绑包用于将 CSS 和 javascript 组合成一个调用,而不是多个 HTTP 请求。

研究利用浏览器缓存:

浏览器缓存的作用是“记住”浏览器已经加载的资源。当访问者转到您网站上的另一个页面时,您的徽标、CSS 文件等不需要再次加载,因为浏览器已“记住”(保存)它们。这就是网页的第一次查看比重复访问花费更长的时间的原因。

当您利用浏览器缓存时,您的网页文件将存储在浏览器缓存中。对于重复访问者而言,您的页面加载速度会更快,共享相同资源的其他页面也会如此。

http://websitespeedoptimizations.com/LeverageBrowserCaching.aspx

【讨论】:

【参考方案2】:

System.Web.Optimization 包用于 CSS 和 JavaScript。它们与缓存图像没有任何关系。您需要采取不同的方法来做到这一点:

选项 1: 在 web.config 的 IIS 设置中设置,如下所示:

http://www.iis.net/configreference/system.webserver/staticcontent/clientcache

选项 2:如果它们是您从代码返回的图像,您可以将缓存标头设置为响应的一部分,如下所示:

http://forums.asp.net/t/1947339.aspx?How+to+cache+Images+at+client+side+

【讨论】:

感谢您的回复我使用了 Httpmodules 方法,因此我所有的 .png 类型都通过标头缓存。

以上是关于System.Web.Optimization 捆绑 css js 缓存的主要内容,如果未能解决你的问题,请参考以下文章

System.Web.Optimization找不到引用

System.Web.Optimization 合并压缩技术的使用

System.Web.Optimization 是 .Net Framework 4.5 的一部分吗?

如何从 MVC5 中删除 System.Web.Optimization

System.web.optimization AssetManager 增加内存使用率

使用 System.Web.Optimization Bundling 最小化时有没有办法禁用 js/css 验证?