asp.net mvc處理css和js版本問題


  當服務的修改了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文件自動加上了版本號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM