asp.net mvc处理css和js版本问题 博客分类: C#ASP.netASP.net MVC MVC
程序员文章站
2024-02-05 08:52:34
...
当服务的修改了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文件自动加上了版本号