c# - 从 Controller 操作中手动捆绑和缩小 JS

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

我爱Bundling and Minification在 ASP.NET MVC 4.5 中并经常使用它。

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

我正在寻找一种解决方案,允许我们的主站点从无 cookie 站点请求一个包含任意数量插件的捆绑和缩小的 JS 文件。像这样的东西:

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

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

是否可以从 Controller 操作中手动调用 ASP.NET 捆绑/缩小过程?

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

最佳答案

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

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 包中获取它。

关于c# - 从 Controller 操作中手动捆绑和缩小 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19275163/

相关文章:

asp.net-mvc - ASP.NET MVC Bundler 与 webpack Bundling

css - 外部 CSS 显示在 head 标签中,而不是单独的文件中

javascript - 将 TypeScript 与外部 JS 文件捆绑在一起(例如 node_modules)

c# - 如何在 C# 上运行时执行一次方法

c# - 如何检测窗体任何控件的变化?

c# - Thread.Sleep(0) 和 Join() 的使用

javascript - 在页面加载时执行 javascript 函数

c# - 表格中的圆角边缘

c# - 如何在 ASP.NET MVC 中有效地提供图像

asp.net-mvc - 对于多个网站和大型应用程序来说, Entity Framework 是一个糟糕的选择吗?