zoukankan      html  css  js  c++  java
  • [Asp.net Mvc]通过UrlHelper扩展为js,css静态文件添加版本号

    写在前面

    在app中嵌入h5应用,最头疼的就是缓存的问题,比如你修改了一个样式,或者在js中添加了一个方法,发布之后,并没有更新,加载的仍是缓存里面的内容。这个时候就需要清理缓存才能解决。但又不想让webview每次都清理缓存,每次都去加载最新的,显然会影响性能。

    解决办法

    解决缓存的方式之一就是在url后面添加一个随机数可以实现,但我们并不希望每次都是新请求,所以这个时候,我们可以在js或者css的后面添加一个版本号,第一次请求仍是新的请求,之后会将静态文件进行缓存。一是解决了修改后,无法立即渲染的问题,二是在之后的请求中也会缓存静态文件。

    在asp.net mvc中,我们会把静态文件放在_Layout.cshtml这个文件中,如下图

    从上面可以看到UrlHelper的类,有了解过HtmlHelper扩展的,很容易想到扩展UrlHelper。

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace System.Web.Mvc
    {
        public static class MyUrlHelper
        {
            public static string Scrpit(this UrlHelper helper, string value)
            {
                string jsCssVersion = ConfigurationManager.AppSettings["Js_CSS_Version"];
                if (string.IsNullOrEmpty(jsCssVersion))
                {
                    return helper.Content(value);
                }
                else
                {
                    return helper.Content(string.Format(value + "?_v={0}", jsCssVersion));
                }
    
            }
        }
    }

    浏览页面

    第一次访问

    刷新页面

    可以看到http状态码变为了304 Not Modified状态。

  • 相关阅读:
    高性能异步爬虫
    线程池在爬虫案例中的应用
    线程池的基本使用
    requests代理爬取
    python验证码识别
    获取人人网当前用户的个人详情页数据
    模拟登录人人网
    移远BC26基础开发之程序结构 三
    移远BC26基础开发之配置 二
    移远BC26/BC28(略)/MC20开发之环境搭建 一
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/5413124.html
Copyright © 2011-2022 走看看