我已将所需的库捆绑在一起。
bundles.Add(new ScriptBundle("~/bundles/libraries").Include(
"~/Content/js/jquery.1.10.2.js",
"~/Content/js/jquery.ui.1.10.3.js",
"~/Content/js/angular.js",
"~/Content/js/ng-grid-2.0.11.min.js",
"~/Content/js/ng-dialog.0.1.6.js",
"~/Content/js/underscore.1.5.0.js",
"~/Content/js/jquery.easyWizard.js",
"~/Content/js/bootstrap.js"));
并在@Scripts.Render("~/bundles/libraries")
中将其称为_Layout
,但我收到以下错误:
Uncaught ReferenceError: jQuery is not defined
并且Angular没有加载。
以下代码有效:
<script src="~/Content/js/jquery.1.10.2.js"></script>
<script src="~/Content/js/jquery.ui.1.10.3.js"></script>
<script src="~/Content/js/angular.js"></script>
<script src="~/Scripts/Angular/ng-grid-2.0.11.min.js"></script>
<script src="~/Content/js/ng-dialog.0.1.6.js"></script>
<script src="~/Content/js/underscore.1.5.0.js"></script>
<script src="~/Content/js/botstrap.js.js"></script>
<script src="~/Content/js/jquery.easyWizard.js"></script>
我哪里出错?
答案 0 :(得分:1)
我相信当你在一个包中添加多个文件时,顺序可能不是你指定的顺序。为确保确切的订单,您必须创建自己的bundle orderer。
更简单的方法是分离捆绑包,以便您可以在 cshtml 文件中按照确切的顺序指定它们。还有一些提示。在文件名中尽可能使用 {version} ,在获得文件的新版本时让生活更轻松,如果已经存在,则使用Bundle
代替ScriptBundle
目录中的缩小版本。它将使用它而不是再次运行minifier。
所以做这样的事情:
bundles.Add(new Bundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js");
bundles.Add(new Bundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
// etc...
然后在 _Layout.cshtml 文件中,首先指定~/bundles/jquery
,然后按依赖顺序指定其他文件。