asp.net – 输出缓存动态生成的CSS
在我的应用程序中,用户可以选择修改其站点的CSS.
这不太可能经常改变,但是当它发生时,我们需要确保他们及其网站访问者立即看到结果. 我们确实记录了用户更新CSS的日期和时间,因此一个简单的解决方案就是在网址上附加一个时间戳. 但是,我想知道是否可以以编程方式设置缓存标头以强制浏览器重新请求CSS文件(如果它发生更改). 解决方法
如果您在网址中包含哈希值,即
http://server.example.com/styles/css.css?hash 当哈希值发生变化时会重新加载,因为浏览器会从新的url中获取它: 版本1: <style type="text/css" link="styles/css.css?hash=v1" /> 版本2: <style type="text/css" link="styles/css.css?hash=v2" /> 客户端缓存是客户端问题,让他们按照自己的意愿行事:新的URL意味着资源已经更改,因此需要重新加载.由于客户端实现的不同,保持与缓存控制头相同的URL可能会让您陷入痛苦的世界. 如果您放置缓存控件标题(last-modified,expires,ETAG),则无法确定CSS在更改时是否会刷新: >因为激进的浏览器(或代理)缓存可能会忽略这些. 使用url哈希,最糟糕的情况是客户端不会将您的css放入缓存中,但用户体验不会改变,因为它们总是获得最新版本. 对于到期日期或上次修改日期,最糟糕的情况是客户端获得旧版本,这将改变用户体验:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 从控制器操作返回301重定向
- asp.net – HttpClient:通常只允许使用每个套接字地址(协议
- asp.net – ApplicationInsight导致网站在启动时挂起
- Asp.Net Core 2.0 生成操作数据库文件需要的文件
- asp.net – 用于DropDownList的MVC2 EditorTemplate
- asp.net字符串分割函数使用方法分享
- asp.net – 如何使用gridview绑定数据集
- asp.net – 如何将数据绑定表达式的值存储到变量中
- asp.net-core – 将应用程序root路由到/ swagger
- asp.net-mvc – 如何在asp.net mvc中的关系表/模型中包含Ap
- asp.net – UrlRewriting.Net模块IIS7等于Page.U
- asp.net – 检测处理程序中的身份验证超时并将整
- asp.net-mvc – 如何测试Asp.Net MVC视图是否无异
- 会话的最大长度是什么ASP.net 4.0会话ID – 存储
- asp.net-mvc – 如何阻止Elmah伐木?
- asp.net-mvc – 使用MVC和WebAPI避免使用Resharp
- asp.net-mvc-3 – MVC3中的模型级错误?
- iis – 如何用经典的asp实现openid支持?
- 缓存以便以后写入asp.net webservice中的数据库?
- asp.net-mvc – MvcSiteMap:未到达动态节点提供