作为开发人员,我们都遇到了这个问题:您需要在网站上进行维护并且有客户脚本:foo.js
现在您对foo.js
进行了更改并进行了测试,检查,部署测试环境中的新代码。
现在,测试用户声称您没有解决问题,因为他的浏览器仍然保留缓存中的旧foo.js
。
我正在考虑创建文件内容的哈希并在文件名中使用它。 foo_8c736521.js
我可以创建哈希 - >重命名文件 - >并更新BundleConfig.cs
但我希望这可以在visual studio中自动完成。
是否有某种类型的库可以在C#.NET中为我处理这个?
我已将此转换添加到我的web.Test.config文件中:
<system.web>
<compilation debug="false" targetFramework="4.5" xdt:Transform="Replace" />
</system.web>
现在,在此环境中启用了Bundle优化。它有效。
答案 0 :(得分:3)
如果您使用的是ASP.NET 4.5或更高版本,请使用内置的JS Bundler。它将跟踪包中包含的JS文件的更改,并仅在文件发生更改时发出新的哈希。
public class BundleConfig {
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add(new ScriptBundle("~/bundles/custom").Include(
"~/Scripts/foo.js",
"~/Scripts/bar.js"
));
}
}
对于MVC - 在Global.asax中注册包:
protected void Application_Start() {
// ...
BundleConfig.RegisterBundles(BundleTable.Bundles);
}