Bri*_*hey 6 asp.net browser-cache
在ASP.Net网站上的javascript和样式表引用上自动应用和/或更新缓存存储区变量的好策略是什么?
例如变换
<script type="text/javascript" src="/js/myScript.js" />
Run Code Online (Sandbox Code Playgroud)
至
<script type="text/javascript" src="/js/myScript.js?rev=12345" />
Run Code Online (Sandbox Code Playgroud)
更新:不需要持续集成.
我正在使用持续集成(Jenkins是具体的),所以如果更新变量的方法基于例如构建号,那将是很好的.
虽然我可以在源代码中手动应用原始变量,并且只是通过策略更新它们,但如果策略也可以应用原始变量(如果它不存在(例如遗留代码)),那将是一个很好的补充.
在我的脑海中,我可以想象使用Powershell脚本扫描所有*.aspx和*.ascx文件,并使用正则表达式查找相应的引用并更新它们.但你知道他们对使用正则表达式的看法......然后我有两个问题:)
在 ASP.Net 中缓存破坏变量的答案是使用各种 CSS/JS 缩小库之一。
我认为缓存破坏器变量需要在每次部署到我们的服务器时进行更新,但缩小库会根据各个 CSS/JS 文件的内容应用哈希标签。
由于我正在开发 .Net 3.5 网站,因此我的选择受到了一些限制。我最终使用了 SquishIt(以 NuGet 包的形式提供),它非常容易集成。
<link href="/<my_css_path>/<css_file_1>.css" rel="stylesheet" type="text/css" />
<link href="/<my_css_path>/<css_file_2>.css" rel="stylesheet" type="text/css" />
<link href="/<my_css_path>/<css_file_3>.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
成为
<%= Bundle.Css()
.Add("~/<my_css_path>")
.Render("~/<my_css_path>/combined_#.css") %>
Run Code Online (Sandbox Code Playgroud)
基本上就是这样!与 javascript 类似的想法。只要在用于本地开发和登台/生产环境的debug="true"web.config 中,SquishIt 就会为本地开发保留未分离和未缩小的 CSS/JS,然后针对其他环境进行组合、缩小和散列(用于缓存清除)。debug="false"
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |