asp.Net   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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-mvc – ASP.NET MVC中的CSS/JS文件的自动版本?全部内容,希望文章能够帮你解决asp.net-mvc – ASP.NET MVC中的CSS/JS文件的自动版本?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。