我的MVC 5项目中有一个小型JS库,我想让外部用户加载到他们的应用程序中。目前我正在捆绑它:
bundles.Add(new ScriptBundle("~/clientApi")
.IncludeDirectory("~/Api/clientapps/", "*.js"));
然后,我可以通过路径/clientApi
上的浏览器访问捆绑的库。
但是,它总是缩小,即使我已经设置了我的web.config debug = true,并且我自己的应用程序中的其他捆绑包也包含在非缩小版中。
如何将捆绑中的文件作为非缩小捆绑文件提供?
答案 0 :(得分:1)
如果您直接访问/clientApi
,那么它将是捆绑/缩小版本。
debug=true
选项会在您自己的 .cshtml
文件中影响您的脚本引用。当debug=true
时,对单个脚本文件的引用将呈现给客户端(因此客户端根本不使用/clientApi
)。
当debug=false
时,对/clientApi
(带有版本查询字符串)的引用将呈现给客户端,因此它们会获得捆绑/缩小版本...如果您将该链接提供给这些外部用户,那就是要呈现的内容。
该路径不关心它是否是调试。它不像/clientApi
要捆绑但不会缩小文件,具体取决于您的编译设置...它只是您的应用将呈现捆绑/缩小的路径或单个脚本路径。
如果您想在外部应用程序中进行调试/测试,那么他们只需使用单独的脚本路径。
即使您在测试完成后确实为这些外部应用程序提供了/clientApi
引用,并且它们已准备好使用捆绑/缩小版本,但它并未解释您将如何处理版本控制。如果您更新脚本,他们将如何知道停止缓存?
答案 1 :(得分:0)
实际上,如果禁用Bundles
的转换,则可以不受限制地提供捆绑包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());
}
}