首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScriptBundle依赖项

ScriptBundle依赖项
EN

Stack Overflow用户
提问于 2012-10-26 16:43:57
回答 3查看 4.1K关注 0票数 2

我很难让ScriptBundle正常工作(如果这真的可以工作的话)。我想要做的是添加另一个包(jQuery)作为我的包的依赖项,如下所示:

代码语言:javascript
复制
bundles.Add(new ScriptBundle("~/js/myscripts")
                    .Include("~/js/jquery",
                             "~/Content/scripts/myscript.js"));

~/js/jquery是jQuery包的“名称”(虚拟路径),注册为这样(在我的依赖包之前):

代码语言:javascript
复制
bundles.Add(new ScriptBundle("~/js/jquery")
                    .Include("~/Content/scripts/jquery-{version}.js"));

当我在我的视图中执行@Scripts.Render("~/js/myscripts")时,只有myscript.js被呈现给HTML.如果我将jQuery的虚拟路径从捆绑包名称中的虚拟路径更改为现有的物理路径,则可以正常工作:

代码语言:javascript
复制
bundles.Add(new ScriptBundle("~/js/myscripts")
                    .Include("~/Content/scripts/jquery-{version}.js",
                             "~/Content/scripts/myscript.js"));

此外,在视图中执行@Scripts.Render("~/js/jquery")也是可行的。它只是引用了另一个不起作用的ScriptBundle的不存在的虚拟路径(名称)。这真的能行得通吗?如果没有,我想知道我可以在哪里发布一个bug报告,说如果这个场景不受支持,应该抛出一个异常。如果它被支持,它会说它在哪里,为什么它不工作?

EN

回答 3

Stack Overflow用户

发布于 2012-10-26 16:49:29

根据你的依赖,你要放在你的布局(视图)中的就是

代码语言:javascript
复制
@Scripts.Render("~/js/jquery")
@Scripts.Render("~/js/myscripts")

在您的评论后更新:

您不能嵌套包,也就是说,您不能将包包含在包中,在创建父包时,该虚拟路径很可能不可用。

通常,我有一个单独的jquery包(包括其他一些不经常更改的js),然后再使用另一个js包来处理其他所有事情。适用于浏览器缓存。

顺便说一句,您看过requireJS吗?如果您捆绑了所有内容,那么实际上并不需要它,但它确实使js文件更好地文档化,因为它使依赖关系变得明确。

票数 1
EN

Stack Overflow用户

发布于 2013-11-23 02:53:34

它不受支持,但是你可以想出你自己的解决方案,对吧?类似于:

代码语言:javascript
复制
var jquery = new[] { "~/Content/scripts/jquery-{version}.js" };
var myScripts = jquery.Concat(new[] { "~/Content/scripts/myscript.js" }).ToArray();
var myOtherScripts = myScripts.Concat(new[] { "~/Content/scripts/otherscript.js").ToArray();

bundles.Add(new ScriptBundle("~/js/jquery").Include(jquery));
bundles.Add(new ScriptBundle("~/js/myscripts").Include(myScripts));
bundles.Add(new ScriptBundle("~/js/other").Include(myOtherScripts));
票数 1
EN

Stack Overflow用户

发布于 2012-10-26 20:05:37

看起来这是一个不受支持的特性,所以我使用了reported an issue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13083607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档