【问题标题】:Bundling, but per user捆绑,但每个用户
【发布时间】:2015-12-15 15:48:42
【问题描述】:

我们有使用普通 asp.net mvc 机制捆绑和压缩的 javascript 文件。

我们还有一些 javascript 文件,它们通过 httphandlers 进行转换以处理短语、配色方案等。目前这些文件只是简单地链接进来,是否可以在用户级别压缩和捆绑这些文件?

不幸的是,我们无法轻松地对它们进行分组,但即使可以,我们也无法在 global.ascx 文件中进行分组,而无需大量重新调整。我之所以提到这一点,是因为它不仅仅是具有 bundle1 = french、bundle2=german 等的情况

我假设压缩可以通过 IIS 和静态压缩来完成,但是捆绑?

谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5 bundling-and-minification


    【解决方案1】:

    没有简单的方法可以做到这一点。

    我能看到的最简单的方法是跳过 MVC 5 附带的整个捆绑和缩小。

    自己处理。为您的用户生成 CSS 并让它通过这段代码:

    public static string RemoveWhiteSpaceFromStylesheets(string body)
    {
      body = Regex.Replace(body, @"[a-zA-Z]+#", "#");
      body = Regex.Replace(body, @"[\n\r]+\s*", string.Empty);
      body = Regex.Replace(body, @"\s+", " ");
      body = Regex.Replace(body, @"\s?([:,;{}])\s?", "$1");
      body = body.Replace(";}", "}");
      body = Regex.Replace(body, @"([\s:]0)(px|pt|%|em)", "$1");
    
      // Remove comments from CSS
      body = Regex.Replace(body, @"/\*[\d\D]*?\*/", string.Empty);
    
      return body;
    }
    

    或任何 CSS 缩小器。只需确保为您的用户包含正确的缓存标签,您甚至不必重新生成太多。


    Code taken from Mads Kristensen

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-03
      • 2019-01-31
      • 2013-04-08
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多