使用 Cassette.net、MVC 3、Razor、C#、相对位置和共享布局,如何在不修改原始 JavaScript 文件的情况下以正确的顺序获取引用?
在共享布局中,我像这样引用 jQuery:
Bundles.Reference("~/Scripts/jquery-1.7.2.js");
然后在视图中,我添加另一个引用:
Bundles.Reference("~/Scripts/myScript.js");
myScript 依赖于 jQuery,但 Cassette 在 jQuery 前面引用了 myScript:
<script src="/_cassette/asset/Scripts/js/myScript.js?...
<script src="/_cassette/asset/Scripts/jquery-1.7.2.js?...
我觉得子页面中引用的脚本在父页面脚本之前呈现很奇怪。
我看到您可以在脚本中添加符号,例如/// <reference path="other.js" />
但我真的不想修改 javascript 代码以包含它。
更新:
我添加了
Bundles.Reference("~/Scripts/jquery-1.7.2.js","head")
Bundles.Reference("~/Scripts/js/myScript.js","body")
这至少将我的脚本放在 jQuery 脚本之后,使用 @Bundles.RenderScripts("head");
和 @Bundles.RenderScripts("body");
在适当的标签中。 它似乎使脚本保持添加的顺序。 我仍然想知道如何使用某种类型的 Bundle.config 自定义排序这些脚本,或者如何让父页面在使用共享布局在子页面之前订购脚本。
使用捆绑描述符文件。然后,您可以强制文件顺序。