如何在 visual studio 中以所有形式更新 javascript 文件的版本
How to update version of a javascript file in all forms in visual studio
我正在开发一个网络应用程序。我正在使用大多数表单中使用的主 javascript 文件。
<script src="assets/public.js"></script>
此文件正在定期更新,用户无法获取最后更新的文件,因为旧文件已缓存在浏览器中。所以我在文件名末尾使用版本指示符来强制浏览器使用我的 javascript 文件的最新版本:
<script src="assets/public.js?version=54"></script>
我应该在 javascript 文件中每次更改后更新每个表单的版本。这是一项非常耗时的手动任务,并且可能会错过更新某些表格。
有什么有效的方法可以将最新版本定义为常量并自动更新所有关于最新版本的表格?
在您的项目中,您需要在 [BundleConfig.cs] 文件中有一个文件夹 [App_Start],您可以注册捆绑包:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/public-{version}.js"));
并在视图中添加:
<head>
@Scripts.Render("~/bundles/public")
</head>
每次从文件 [BundleConfig.cs]
更改 .js 版本更新变量 {version}
可以使用文件的最后修改日期作为版本指示符。所以甚至不需要定义常量。
<script src="asset/public.js?version={{lastModifiedDate('asset/public.js')}}"></script>
下面函数returns文件的最后修改日期:
function lastModifiedDate(url) {
try {
var req = new XMLHttpRequest();
req.open("HEAD", url, false);
req.send(null);
if (req.status == 200) {
return req.getResponseHeader('Last-Modified');
}
else return false;
} catch (er) {
return er.message;
}
}
我正在开发一个网络应用程序。我正在使用大多数表单中使用的主 javascript 文件。
<script src="assets/public.js"></script>
此文件正在定期更新,用户无法获取最后更新的文件,因为旧文件已缓存在浏览器中。所以我在文件名末尾使用版本指示符来强制浏览器使用我的 javascript 文件的最新版本:
<script src="assets/public.js?version=54"></script>
我应该在 javascript 文件中每次更改后更新每个表单的版本。这是一项非常耗时的手动任务,并且可能会错过更新某些表格。
有什么有效的方法可以将最新版本定义为常量并自动更新所有关于最新版本的表格?
在您的项目中,您需要在 [BundleConfig.cs] 文件中有一个文件夹 [App_Start],您可以注册捆绑包:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/public-{version}.js"));
并在视图中添加:
<head>
@Scripts.Render("~/bundles/public")
</head>
每次从文件 [BundleConfig.cs]
更改 .js 版本更新变量 {version}可以使用文件的最后修改日期作为版本指示符。所以甚至不需要定义常量。
<script src="asset/public.js?version={{lastModifiedDate('asset/public.js')}}"></script>
下面函数returns文件的最后修改日期:
function lastModifiedDate(url) {
try {
var req = new XMLHttpRequest();
req.open("HEAD", url, false);
req.send(null);
if (req.status == 200) {
return req.getResponseHeader('Last-Modified');
}
else return false;
} catch (er) {
return er.message;
}
}