【问题标题】:Change asp.net mvc bundles fingerprinting更改 asp.net mvc 捆绑包指纹
【发布时间】:2015-01-30 16:00:22
【问题描述】:

是否有可能改变 System.Web.Optimization 呈现包的方式?

发件人:

<script src="/bundles/js/bundlename?v=GMFuN8gzKMcwk5BwaMfgjUlieAXKThyQd8twrVplJ8A1"></script>

像这样的自定义:

<script src="/bundles/js/v-GMFuN8gzKMcwk5BwaMfgjUlieAXKThyQd8twrVplJ8A1/bundlename"></script>

更新:不理想,但小讨厌的解决方法:

public static class BundlesHelper
{
        public static IHtmlString RenderScripts(params string[] paths)
        {
            #if DEBUG
            return System.Web.Optimization.Scripts.Render(paths);
            #endif

            // Get raw string
            var rawString = System.Web.Optimization.Scripts.Render(paths).ToHtmlString();

            // Get version value
            var version = Regex.Match(rawString, @"\?v=([0-9a-zA-Z_-])+").Value;

            // Remove old hash
            rawString = rawString.Replace(version, "");

            // Remove script end tag
            rawString = rawString.Replace("</script>", "");

            // Get last index of "/"
            var index = rawString.LastIndexOf('/');

            // Return new string
            return new HtmlString(rawString.Insert(index, "/v-" + version.Replace("?v=", "")) + "</script>");
        }
}

【问题讨论】:

    标签: asp.net-mvc system.web.optimization


    【解决方案1】:

    没有。那不是重点。查询字符串部分是缓存破坏器。该文件位于脚本 src 所说的位置,并且不会改变。在您想要的版本中,文件的实际物理位置必须更改。

    【讨论】:

    • 是的,你是对的。但我想通过重写规则更改位置,所以我仍在寻找如何更改指纹外观的方法。
    • 如果没有某种 very hacky 和丑陋的解决方案,这是不可能的,这样做没有任何功能上的好处。为什么它甚至很重要?
    • 因为一些 SEO 测试工具不喜欢那些查询字符串,并且我们正在使用基于此解决方案 madskristensen.net/post/cache-busting-in-aspnet 的静态文件指纹识别解决方案,因此最好有跨平台的同质解决方案项目。
    • Mads 实际上在链接文章的 cmets 中说,MVC 捆绑不支持这一点。可能有一种方法可以绑定功能,但这取决于你。为您构建这样的东西远远超出了 StackOverflow 答案的范围,老实说,如果您需要它那么糟糕,但不能自己解决它,也许这表明这不是最好的方法。
    • 我明白了。我对这个主题做了一些研究,不幸的是我没有找到实现这一目标的有希望的方法。因此,stackoverflow 问题即将了解其他人是否面临同样的情况以及他的方法是什么。当然,我不期待代码粘贴的答案。无论如何,谢谢您的关注。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 2018-10-14
    • 2023-04-08
    • 2021-11-16
    • 2013-08-06
    • 2015-08-07
    相关资源
    最近更新 更多