0

我的 MVC 5 项目中有一个小型 JS 库,我希望外部用户可以将其加载到他们的应用程序中。目前我正在像这样捆绑它:

bundles.Add(new ScriptBundle("~/clientApi")
    .IncludeDirectory("~/Api/clientapps/", "*.js"));

然后我可以通过浏览器在路径上访问捆绑的库/clientApi

然而,它总是被缩小,即使我设置了我的 web.config debug=true,并且我自己的应用程序中的其他包被包含为非缩小。

如何使捆绑包中的文件可用作非缩小捆绑包文件?

4

2 回答 2

1

如果您/clientApi直接访问,那么是的,它将是捆绑/缩小版本。

debug=true选项会影响自己 .cshtml文件中的脚本引用。当 时debug=true,对单个脚本文件的引用被呈现给客户端(因此客户端根本不使用/clientApi)。

debug=false,然后将/clientApi(带有版本查询字符串)的引用呈现给客户端,因此他们获得捆绑/缩小版本...如果您将该链接提供给这些外部用户,那么这就是将要呈现的内容.

该路径不关心它是否是调试的。这不像/clientApi是要根据您的编译设置来捆绑但不缩小文件......这只是您的应用程序将呈现捆绑/缩小的路径或单独的脚本路径。

如果您想在外部应用程序中进行调试/测试,那么他们只需要使用单独的脚本路径。

即使您在/clientApi测试完成后确实为这些外部应用程序提供了参考并且它们已准备好使用捆绑/缩小版本,它也不能解释您将如何处理版本控制。如果你更新一个脚本,他们怎么知道停止缓存?

于 2013-11-28T16:59:08.500 回答
0

实际上,如果您禁用捆绑包的转换,您可以提供未缩小的捆绑包

protected void Application_Start() {
    BundleTable.EnableOptimizations = true; // Force bundling to occur

    // If the compilation node in web.config indicates debugging mode is enabled
    // then clear all transforms. I.e. disable Js and CSS minification.
    if (HttpContext.Current.IsDebuggingEnabled) {
        BundleTable.Bundles.ToList().ForEach(b => b.Transforms.Clear());
    }
}
于 2015-02-25T13:35:59.693 回答