从控制器操作手动捆绑和缩小JS

时间:2013-10-09 14:40:49

标签: c# asp.net-mvc bundling-and-minification

我喜欢ASP.NET MVC 4.5中的Bundling and Minification并且经常使用它。

然而,一个小问题是我们的“插件”托管在一个无Cookie的域上,该域位于我的Visual Studio解决方案的单独项目中。

我正在寻找一个解决方案,它允许我们的主站点请求包含来自cookieless站点的任意数量插件的捆绑和缩小的JS文件。类似的东西:

http://my.cookieless.domain/plugins.js?include=alpha&include=bravo,charlie

到目前为止,我能找到的最佳解决方案是使用第三方捆绑和缩小库,考虑到ASP.NET内置了一个库,这似乎有些过分。

是否可以从内部控制器操作中手动调用ASP.NET捆绑/缩小过程?

public JavaScriptResult Index(IList<string> include)
{
    //bundle and minify JS
}

1 个答案:

答案 0 :(得分:5)

我在寻找类似的东西时遇到了这个,这是解决方案:

public ActionResult DynamicJs()
{
      // Obviously this will be dynamically generated
      string javaScript = new Minifier().MinifyJavaScript("alert('Hello world!');");

      //returns minified javaScript
      return JavaScript(javaScript);
}

CSS也是如此。您可能想要使用:

 new Minifier().MinifyStyleSheet(styleSheet, new CssSettings { ColorNames = CssColor.Hex }

Minifier类是 Microsoft.Ajax.Utilities 的成员,您可以从WebGrease Nuget包中获取该文件。