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

Con*_*ell 6 c# asp.net-mvc bundling-and-minification

我喜欢ASP.NET MVC 4.5中的Bundling和Minification,并且使用它很多.

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

我正在寻找一种解决方案,它允许我们的主站点请求捆绑和缩小的JS文件,其中包含来自cookieless站点的任意数量的插件.就像是:

http://my.cookieless.domain/plugins.js?include=alpha&include=bravo,charlie
Run Code Online (Sandbox Code Playgroud)

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

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

public JavaScriptResult Index(IList<string> include)
{
    //bundle and minify JS
}
Run Code Online (Sandbox Code Playgroud)

Sea*_*urn 5

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

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

      //returns minified javaScript
      return JavaScript(javaScript);
}
Run Code Online (Sandbox Code Playgroud)

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

 new Minifier().MinifyStyleSheet(styleSheet, new CssSettings { ColorNames = CssColor.Hex }
Run Code Online (Sandbox Code Playgroud)

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