关于更新发布CSS和JS文件的缓存问题
项目的css和js有更新,发布到服务器上后,怎么样及时的更新发布的css和js。
怎么解决关于更新发布CSS和JS文件的缓存问题
------解决方案--------------------连接上加个?XXXX
<link href="/assets/main-df2e9527ae72ae48210bfa0213531ded.css
?20140321" media="screen" rel="stylesheet" type="text/css" />
------解决方案--------------------加版本号.
------解决方案--------------------我也正好想知道,帮顶
------解决方案--------------------强制页面不缓存
protected void Page_Load(object sender, EventArgs e)
{
Response.Expires = 0;
Response.CacheControl = "no-cache";
------解决方案--------------------<link href="/assets/main-df2e9527ae72ae48210bfa0213531ded.css?<%=ConfigHelper.Version%>" media="screen" rel="stylesheet" type="text/css" />
/// <summary>
/// 读取当前Web.Config中的一些值
/// </summary>
public static class ConfigHelper
{
//不直接推荐使用ConfigurationManager.AppSettings["Version"]的原因是AppSettings["Version"]中的字符串Version,没有智能提示,另外如果到时不得不修改Version的话,那么就要在系统中到处找,到处修改
//所以封装在同一个地方
/// <summary>
/// 版本
/// </summary>
public static readonly string Version= ConfigurationManager.AppSettings["Version"];
如果是mvc的 有更好的方法
在App_Start下面有一个BundleConfig类
你可以看看
------解决方案--------------------在相关的引用后面加时间戳
比如 a.js
?1
发布一次引用的地方就改一次
------解决方案--------------------6楼已经很完善的回答你了,不过如果你有html页面之类的话,这个是处理不到的
------解决方案--------------------有这种方法啊,自己写个handler, 正则遍历返回的html,替换相应的css,js,但这种做法会大量增加服务器压力,而6楼的方法可以说是只劳动第一次,但不能解决html的缓存问题,其实最好还是每次修改哪个文件就手动的把那个改一下,当然这样做的前提是最好你的css或者js文件灰常少,基本都合并到了几个里面,而且css,js必须集中,同样的,对于图片也是有缓存问题的
再补充下:显示声明页面不缓存,只是通知浏览器而已,CDN是不管这个东西的,CDN只缓存静态的东西