写在前面

在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状态。

[Asp.net Mvc]通过UrlHelper扩展为js,css静态文件添加版本号的更多相关文章

  1. [Asp.net Mvc]为js,css静态文件添加版本号

    方式一: 思路 string version = ViewBag.Version; @Scripts.RenderFormat("<script type=\"text/ja ...

  2. ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号

    写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服 ...

  3. gulp实现打包js/css/img/html文件,并对js/css/img文件加上版本号

    参考打包教程: http://www.cnblogs.com/tugenhua0707/p/4069769.html http://www.cnblogs.com/tugenhua0707/p/498 ...

  4. Maven项目WEB-INF/views无法引入js,css静态文件解决方法

    web.xml针对文件后缀配置以下,对客户端请求的静态资源如图片.JS文件等的请求交由默认的servlet进行处理 <servlet-mapping> <servlet-name&g ...

  5. ASP.NET MVC Bundles 合并压缩(js css)

    Chrome浏览器有并发的Http请求限制,Bundles可以将多个JS文件合并成一个文件并进行压缩,最终得到一个单文件的压缩包. 第一步:BundleConfig public class Bund ...

  6. spring boot 整合js css 静态文件

    一,添加配置 spring: application: name: interview-server resources: static-locations: file:config/statics ...

  7. Spring Boot thymeleaf模版支持,css,js等静态文件添加

    Thymeleaf引入 Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML.XML.JavaScript.CSS和文本,在Web和非Web环境下都可以正常工作. 1.添加依赖包 & ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)

    lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...

  9. ASP.NET MVC:UrlHelper.cs

    ylbtech-funcation-Utility: ASP.NET MVC:UrlHelper.cs 充当表示 ASP.NET Razor 页的类的基类. 1.UrlHelper 类返回顶部 1-1 ...

随机推荐

  1. Android 6.0 SDK 找不到HttpClient的解决方法

    一.情况描述 在eclipse或Android Studio开发时(笔者目前只用过Android Studio),设置Android SDK的编译版本为23时,且使用了httpClient相关类的库项 ...

  2. iOS——特殊的几个控件

    29.UITextChecker您使用的UITextChecker类的实例来检查拼写错误的单词字符串(通常是文档中的文本).30.UITextPosition一个UITextPosition对象代表一 ...

  3. http请求过程简要

    一次http请求主要分为3个大步. 建立tcp连接. 这里就发生了经典的tcp三次握手.做个类比解释下,tcp好比http的秘书,和厂家(服务器端)做买卖.老板(http)叫秘书(tcp)去联系一下, ...

  4. linux中的进程管理

    USER  那个用户启动的进程 PID     该进程的ID号 %CPU   占用的CPU百分比 %MEM   占用的物理内存百分比 VSZ      占用虚拟内存大小 KB RSS      占用实 ...

  5. 四则运算 Day2

    元旦快乐篇 别人在过元旦,而我却在敲代码,说多了都是泪. 设计思路 1. 界面设计 程序运行时,跳出运行说明提示用户如何操作 用户阅读完说明后点击开始进入主界面,即操作界面,操作界面分为计时区,操作区 ...

  6. FZU5BOYS-Beta版本冲刺计划及安排

    1.下一阶段需要改进完善的功能 话题模块(分类参考Citeulike论文网站),文章/计划的删除功能 2.下一阶段新增的功能 1)推荐模块(冷启动问题,拟爬取部分豆瓣数据,部分伪专家数据(我们团队), ...

  7. Beta冲刺阶段

    Beta冲刺阶段 现阶段工作安排以及问题解决 Struts2框架配置 网上下载Struts 2 的框架代码,按照书上教程进行配置 遇到的问题:书上配置过程和实际操作有出入,按照书上过程无法完成配置过程 ...

  8. Html设置图标icon

    html head添加: <link rel="icon" href="/favicon.ico" type="image/x-icon&quo ...

  9. Java设计模式-代理模式(Proxy)

    其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你 ...

  10. BZOJ-3226 校门外的区间 线段数+拆点(类似的思想)

    shabi题....bzoj关键字检查freopen??可怕,,1A的卡了一小时.... 3226: [Sdoi2008]校门外的区间 Time Limit: 10 Sec Memory Limit: ...