如何在VisualStudio中以所有形式更新javascript文件的版本
我正在开发一个web应用程序。我使用的是大多数表单中使用的主javascript文件如何在VisualStudio中以所有形式更新javascript文件的版本,javascript,visual-studio,webforms,Javascript,Visual Studio,Webforms,我正在开发一个web应用程序。我使用的是大多数表单中使用的主javascript文件 <script src="assets/public.js"></script> 此文件正在定期更新,用户无法获取上次更新的文件,因为旧文件已通过浏览器缓存。因此,我在文件名末尾使用了一个版本指示器,以强制浏览器使用我的javascript文件的最新版本: <script src="assets/public.js?version=54"></script>
<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>
@Scripts.Render(“~/bundles/public”)
每次从文件[BundleConfig.cs]中更改.js版本更新变量{version}时,都可以使用文件的上次修改日期作为版本指示器。所以甚至不需要定义常数
<script src="asset/public.js?version={{lastModifiedDate('asset/public.js')}}"></script>
你是如何开发这个应用程序的?如果您在每个页面上都包含公共脚本,而不使用模板,那么这本身就是一种不好的做法吗?
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;
}
}