Javascript最小化缓存问题
Javascript Minification Caching Issue
我有ASP。. Net MVC 3应用程序。我使用yuiccompressor。Net用于缩小javascript &
使用MSBuild构建后的Css文件。生成的javascript压缩文件是jssmin .js和CssMin.css我的主页引用这些文件如下:
link rel="stylesheet" href="@Url.Content("~/Content/CssMin.css")" type="text/css">
script type="text/javascript" src="@Url.Content("~/Scripts/JsMin.js")">
现在的问题是缩小版得到缓存在最终用户的浏览器,所以我们在javascript/css的新修复没有反映在最终用户的浏览器,因为这些文件被缓存,因为它是使用相同的文件名。我正在寻找某种干净的过程,这将建立缩小的javascript &带有版本号的Css文件,如JsMin1.0.js &并自动更新下面
的引用link rel="stylesheet" href="@Url.Content("~/Content/CssMin.css")" type="text/css">
script type="text/javascript" src="@Url.Content("~/Scripts/JsMin.js")">
非常感谢你的帮助。谢谢。您需要在CDN静态媒体资源url中使用缓存破坏:
http://codebetter.com/karlseguin/2010/01/11/asp-net-performance-part-3-cache-busting/无法清除浏览器缓存
是。您需要更改url。否则,用户的浏览器缓存可能会提供最后查看的版本。最好对资源进行版本化,以便版本字符串成为url的一部分。您通常希望将此版本字符串放在路径或文件名中,而不是放在查询字符串中,以便与所有代理和cdn配合良好。这无疑是一种痛苦。你不仅需要版本文件,还必须确保你的链接都是更新的,所以你要么需要手动更改它们,要么有一个构建过程或应用程序架构来为你处理这个问题。
我有一个OSS项目,RequestReduce,在运行时最小化和组合css和js。解决方案处理所有的链路重写。唯一的问题是,当你更改内容时,你必须刷新RequestReduce缓存,这很容易从应用程序提供的仪表板中完成。
它也精灵和优化背景图像。
查看http://www.requestreduce.com获取更多信息。
您可以使用https://github.com/vincpa/mvc.resourceloader这样的解决方案,它将处理浏览器缓存,设置适当的etag标头并维护版本。再说一次,这个库是我写的,所以我有偏见:)
在我看来,使用散列比使用版本号更好。这样你就不需要跟踪你的版本了。
另外,您希望避免在查询字符串中添加版本号,因为一些代理不缓存包含查询字符串的资源。
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 登录后重定向,缓存页面问题-Javascript
- jQuery选择器缓存问题
- Express/Node的奇怪(缓存)问题
- Node.js/Socket.io适用于除Firefox之外的所有应用程序,这可能是缓存问题
- 将部分视图加载到JQuery对话框中的缓存问题
- 防止在php中缓存500内部错误页面的问题
- 我的网站存在火狐缓存问题
- 禁用 Internet Explorer 8 jQuery 中的缓存问题
- 发送 XMLHttpRequest 时缓存结果的问题
- IE7中的JS +缓存问题
- Internet Explorer Ajax 调用,缓存响应问题
- 问题:在传递给函数时缓存 jquery 对象
- 浏览器中的 Ajax 缓存问题
- $('#textboxId').val() 返回旧值(浏览器缓存问题)
- Gulp Angular 构建模板缓存问题
- JSONP 从 WCF 服务获取缓存响应时出现问题
- jQuery Datatable缓存图像问题
- Javascript文件缓存问题
- 第二页加载时出现Safari缓存问题