當服務的修改了js和css內容后,發布到IIS服務器上,總是導致客戶端內容顯示不正確,原因是客戶端存在緩存,還是加載的原來的js和css問題。
在css或js后面添加版本號,例如:
<script src="1.js?v=1.0"></script>
當版本號改變時,客戶端會重新讀取新的文件,問題解決了。
但同時也帶了另一個問題,每次修改后,都必須修改版本好,如果引用比較多的化,那么工作量也比較大,同樣是個問題。
這里解決方法是配置一個版本號
步驟一:在web.config中配置版本號:
<appSettings> <add key="JsVersion" value="20161123.2"/> </appSettings>
步驟二:寫一個擴展方法
using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Web.Mvc; namespace WebSeat.Site.Member.Helper { /// <summary> /// 說明: /// 創建日期:2016/11/23 10:36:01 /// 創建人:曹永承 /// </summary> public static class HtmlHelperExtend { /// <summary> /// 給CSS文件或JS文件指定版本號 /// </summary> /// <param name="helper"></param> /// <param name="url">CSS或JS路徑</param> /// <returns></returns> public static string GetCssJsUrl(this HtmlHelper helper, string url) { string version = ConfigurationManager.AppSettings["JsVersion"]; version =version == null ? "1.0" : version; return url += "?v=" + version; } } }
步驟三:改變js和css引用方法
<link href="@Html.GetCssJsUrl("/Content/custom/areaHome.css")" rel="stylesheet"/> <script src="@Html.GetCssJsUrl("/Scripts/custom/AreaHome.js")"></script>
可以看到css和js文件自動加上了版本號