caching – MVC4 StyleBundle:你能在Debug模式下添加一个缓存清除查询字符串吗?
发布时间:2020-05-23 05:26:14 所属栏目:asp.Net 来源:互联网
导读:我有一个MVC应用程序,我使用StyleBundle类渲染CSS文件像这样: bundles.Add(new StyleBundle(~/bundles/css).Include(~/Content/*.css)); 我有的问题是,在调试模式下,CSS网址单独渲染,我有一个Web代理积极缓存这些网址。在发布模式下,我知道一个查询字符
|
我有一个MVC应用程序,我使用StyleBundle类渲染CSS文件像这样: bundles.Add(new StyleBundle("~/bundles/css").Include("~/Content/*.css"));
我有的问题是,在调试模式下,CSS网址单独渲染,我有一个Web代理积极缓存这些网址。在发布模式下,我知道一个查询字符串被添加到最终的URL,以使每个发布的任何缓存无效。 是否有可能配置StyleBundle在调试模式下添加一个随机查询字符串,以产生以下输出来解决缓存问题? <link href="/stylesheet.css?random=some_random_string" rel="stylesheet"/> 解决方法您可以创建一个自定义IBundleTransform类来做到这一点。这里有一个例子,将使用文件内容的哈希附加一个v = [filehash]参数。public class FileHashVersionBundleTransform: IBundleTransform
{
public void Process(BundleContext context,BundleResponse response)
{
foreach(var file in response.Files)
{
using(FileStream fs = File.OpenRead(HostingEnvironment.MapPath(file.IncludedVirtualPath)))
{
//get hash of file contents
byte[] fileHash = new SHA256Managed().ComputeHash(fs);
//encode file hash as a query string param
string version = HttpServerUtility.UrlTokenEncode(fileHash);
file.IncludedVirtualPath = string.Concat(file.IncludedVirtualPath,"?v=",version);
}
}
}
}
然后,您可以通过将类添加到您的bundle的Transforms集合来注册该类。 new StyleBundle("...").Transforms.Add(new FileHashVersionBundleTransform());
现在只有文件内容改变时版本号才会改变。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – MVC4不要在重定向上使用主布局
- asp.net – 如何防止Azure网站进入睡眠状态?
- asp.net-mvc – Asp.net Identity使用什么算法来加密密码?
- asp.net-mvc – 如何从VOID方法重定向到MVC3中的另一个动作
- 如何在ASP.Net项目中包含jQuery?
- 我需要知道什么才能使asp.net应用程序全球化?
- asp.net mvc中Forms身份验证身份验证流程
- 实体框架 – 使用EF和WebAPI,如何返回一个ViewModel并支持I
- asp.net – aspx.designer.cs它是如何工作的?
- 如何在asp.net中编写javascript代码后面使用C#
推荐文章
站长推荐
- 将asp.net应用程序移植到天蓝色有多大挑战?
- asp.net-mvc – ASP.NET MVC jQueryUI datepicke
- asp.net:runat =“server”和服务器控件之间的区
- asp.net-core – 简化的IOptions方法
- ASP.net Web服务与WCF
- asp.net-mvc-3 – 哪里和如何定义我的asp.net MV
- ASP.Net文本框从右到左
- asp.net-mvc-3 – MVC站点地图提供程序 – 在痕迹
- asp.net-mvc – Kendo:处理Ajax数据请求中的错误
- asp.net-mvc – 神秘的ASP.NET MVC Action高延迟
热点阅读
