gpt4 book ai didi

asp.net - ASP.Net 中的缓存 Buster 策略

转载 作者:行者123 更新时间:2023-12-04 15:02:15 24 4
gpt4 key购买 nike

在 ASP.Net 网站中自动应用和/或更新我的 javascript 和样式表引用上的缓存破坏器变量的好策略是什么?

例如。转型

<script type="text/javascript" src="/js/myScript.js" />


<script type="text/javascript" src="/js/myScript.js?rev=12345" />

更新:不需要持续集成。
我正在使用持续集成(具体来说是 Jenkins),所以如果更新变量的方法基于构建号,那就太好了。

虽然我可以在源代码中手动应用原始变量并通过策略更新它们,但如果策略还可以应用不存在的原始变量(比如遗留代码),那将是一个很好的补充。

在我的脑海中,我可以想象使用 Powershell 脚本扫描所有 *.aspx 和 *.ascx 文件并使用正则表达式来查找适当的引用并更新它们。但是你知道他们是怎么说使用正则表达式的……那么我有两个问题:)

最佳答案

在 ASP.Net 中缓存 buster 变量的答案是使用各种 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" />

变成了
<%= Bundle.Css()
.Add("~/<my_css_path>")
.Render("~/<my_css_path>/combined_#.css") %>

基本上就是这样!与 javascript 类似的想法。只要 debug="true"在您的 web.config 中用于本地开发和 debug="false"对于您的登台/生产环境,SquishIt 将使您的 CSS/JS 未分离和未缩小以进行本地开发,然后组合、缩小和 哈希 (用于缓存破坏)用于您的其他环境。

关于asp.net - ASP.Net 中的缓存 Buster 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10407897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com