Auto-versioning in MVC
每次更新版本都會因為瀏覽器暫存沒有更新以為有BUG
結果常常是虛驚一場,但也浪費不少時間
但如果直接在後面加上時間例如:"xxx.js?v=20200310235959"這樣又幾乎每秒都要重取一次
正片開始
Step1.
首先在專案內找到"AssemblyInfo.cs"
接著將
[assembly: AssemblyVersion("1.0.0.0")]
改成
[assembly: AssemblyVersion("1.0.0.*")]
Step2. 新增下面這個class
public static class AutoVer()
{
public static string GetVer()
{
var fullVer = Assembly.GetAssembly(typeof(AutoVersion)).GetName().Version.ToString();
var simpleVer = fullVer.Split('.').ToList().Last();
return simpleVer;
}
}
接著只要在你需要的地方呼叫這段程式就可以取得本次建置的版號
例如
HomeController.cs
public HomeController()
{
var autoVer = AutoVersion.GetCurrentVersion();
ViewBag.autoVer = autoVer;
}
Index.cshtml
@{
var autoVer = (string)ViewBag.autoVer;
}
<html>
<head>
<link rel="stylesheet" href="~/sample.css?v=@(autoVer)" />
<script src="~/test.js?v=@(autoVer)"></script>
</head>
<body>
<div>
HELLO
</div>
</body>
</html>
完成
參考資料: https://stackoverflow.com/questions/5818799/autoversioning-css-js-in-asp-net-mvc