【发布时间】:2014-12-18 18:20:30
【问题描述】:
假设我配置了这两个脚本包:
bundles.Add(new ScriptBundle("~/Scripts/Bootstrap").Include(
"~/Content/Scripts/jQuery/jquery-2.1.1.js",
"~/Content/Scripts/Bootstrap/bootstrap.js"));
bundles.Add(new ScriptBundle("~/Scripts/jQuery").Include(
"~/Content/Scripts/jQuery/jquery-2.1.1.js"));
如您所见,~/Scripts/Boostrap 使用一个 jQuery JavaScript 文件和一个 Bootstrap 文件。这是因为 Bootstrap 需要 jQuery 才能工作。
另一方面,~/Scripts/jQuery 仅由 jQuery 文件组成。
我想要两个包,以防视图只需要 jQuery 而不需要 Bootstrap。
但是,我在这里复制代码,我定义了 jQuery JavaScript 文件路径两次。
有没有办法告诉~/Scripts/Boostrap 包使用或“注入”另一个包?
类似这样的:
bundles.Add(new ScriptBundle("~/Scripts/Bootstrap").UseBundle("~/Scripts/jQuery").Include(
"~/Content/Scripts/Bootstrap/bootstrap.js"));
【问题讨论】:
-
为什么不只是让 jQuery 包只有 jQuery,而引导程序包只有引导程序。在您看来,包括 jQuery,如有必要,请引入引导程序包。除了在 HTML 中保存一个脚本标签之外,我看不出在两个单独的包中包含 jquery 会真正为您带来什么。
-
@Tommy 我可以做到这一点,并且客户再做一个请求的工作几乎不会被注意到,但是如果有一种更优化的方法来完成我想要的,并且仍然让客户只发送一个两个脚本的单个请求,这会很棒
-
不幸的是,这里没有什么可以说的,除了,不,这是不可能的。无法在另一个包中引用一个包。
-
从程序员的角度来看,
I want to have two bundles in case a view only needs jQuery and not Bootstrap在我们对缓存一无所知的世界里听起来完全合乎逻辑。一旦涉及缓存,在第一次请求之后,每个视图捆绑的想法实际上比每个视图多个脚本的性能更差(通常情况下)。跨度>
标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4