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 是 .Net Framework 4.5 的一部分吗?
如何从 MVC5 中删除 System.Web.Optimization