Asp.net mvc 从外部加载MVC JS包

Asp.net mvc 从外部加载MVC JS包,asp.net-mvc,bundling-and-minification,system.web.optimization,Asp.net Mvc,Bundling And Minification,System.web.optimization,我的MVC5项目中有一个小JS库,我希望外部用户可以将它加载到他们的应用程序中。目前,我正在像这样捆绑它: bundles.Add(new ScriptBundle("~/clientApi") .IncludeDirectory("~/Api/clientapps/", "*.js")); 然后,我可以通过路径/clientApi的浏览器访问捆绑的库 然而,它总是缩小的,即使我已经将我的web.config debug=true设置为true,并且我自己的应用程序中的其他捆绑包也包括

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

bundles.Add(new ScriptBundle("~/clientApi")
    .IncludeDirectory("~/Api/clientapps/", "*.js"));
然后,我可以通过路径
/clientApi
的浏览器访问捆绑的库

然而,它总是缩小的,即使我已经将我的web.config debug=true设置为true,并且我自己的应用程序中的其他捆绑包也包括为非缩小的


如何使捆绑包中的文件作为非精简捆绑包文件可用?

如果您直接访问
/clientApi
,则它将是捆绑/精简版本

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

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

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

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


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

实际上,如果您禁用包的转换,您可以为未列化的包提供服务

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());
    }
}

如果你不想缩小它,那么为什么要通过捆绑程序处理它呢?是的。只需链接到正常的未缩小文件。这就像HTML 101。我想在设置web.config debug=false属性时缩小它。如果设置为true,我不希望它缩小。我不想为了实现这一点而改变捆绑包的路径。谢谢,几乎涵盖了我希望/想知道的所有要点。