asp.net-mvc – ASP.NET MVC中的CSS/JS文件的自动版本?
|
我已经阅读了许多关于如何自动版本的CSS / JS文件的文章 – 但是没有一个提供了一个优雅的方式来做到这一点在ASP.NET MVC。 这个链接 – What is an elegant way to force browsers to reload cached CSS/JS files? – 为Apache提供了一个解决方案 – 但我有点困惑,这可以通过ASP.NET MVC实现? 任何人都可以提供一些建议,如何在IIS7和ASP.NET MVC上这样做,以便CSS / JS文件自动在URL中插入版本号,而不改变文件的位置? 也就是说,链接出来链接这个等可能使用URL重写或? <link rel="stylesheet" href="/css/structure.1194900443.css" type="text/css" /> <script type="text/javascript" src="/scripts/prototype.1197993206.js"></script> 谢谢 解决方法当面对这个问题时,我在UrlHelper的Content方法中写了一系列包装函数:编辑: 在下面的意见讨论之后,我更新了这段代码: public static class UrlHelperExtensions
{
private readonly static string _version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
private static string GetAssetsRoot()
{
string root = ConfigurationManager.AppSettings["AssetsRoot"];
return root.IsNullOrEmpty() ? "~" : root;
}
public static string Image(this UrlHelper helper,string fileName)
{
return helper.Content(string.Format("{0}/v{2}/assets/img/{1}",GetAssetsRoot(),fileName,_version));
}
public static string Asset(this UrlHelper helper,string fileName)
{
return helper.Content(string.Format("{0}/v{2}/assets/{1}",_version));
}
public static string Stylesheet(this UrlHelper helper,string fileName)
{
return helper.Content(string.Format("{0}/v{2}/assets/css/{1}",_version));
}
public static string Script(this UrlHelper helper,string fileName)
{
return helper.Content(string.Format("{0}/v{2}/assets/js/{1}",_version));
}
}
结合以下重写规则使用这些功能应该可以工作: <rewrite>
<rules>
<rule name="Rewrite assets">
<match url="^v(.*?)/assets/(.*?)" />
<action type="Rewrite" url="/assets/{R:2}" />
</rule>
</rules>
</rewrite>
This article讨论如何在IIS7上创建重写规则。 此代码使用当前程序集的版本号作为它发出的文件路径上的查询字符串参数。当我对网站进行更新并且版本号递增时,文件上的querystring参数也是如此,因此用户代理将重新下载该文件。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 允许 – (破折号)在正则表达式中
- .net – CS0012:类型’System.Data.Linq.DataContext’在未
- 在ASP和ASP.Net之间共享登录系统
- ASP.NET Server.HtmlEncode限制
- asp.net – 在新的MVC4应用程序中获取UserId(int)
- asp.net-mvc – 仅使用Entity Framework更新已修改字段的最
- .net – 如何将变量传递给SqlDataSource的SelectCommand?
- 数据绑定ASP.NET ListItem列表DropDownList问题
- 嵌套的ASP.NET’应用程序’在IIS内继承父配置值?
- 进程是经典ASP可以存储会话状态的唯一方法吗?
