【问题标题】:Angular bundled/minified by MVC fails to load main module由 MVC 捆绑/缩小的 Angular 无法加载主模块
【发布时间】:2016-01-25 18:42:22
【问题描述】:

我有一个 MVC 5 应用程序,它像这样捆绑我的 Angular 应用程序:

   var angular = new ScriptBundle("~/App")
            .Include("~/App/app.js")
            .IncludeDirectory("~/App", "*.js", true);

        bundles.Add(angular);     

然后在头部渲染,等所有其他资源加载完毕,这里:

(jquery, angular.min.js, other resources)
@Scripts.Render("~/App")

打开将我的 web.config 的调试属性切换为 false:

    <compilation debug="false" targetFramework="4.5.2" />

我的 Angular 应用程序的主模块不会加载:

错误:[$injector:nomod] 模块“wdf”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

在您将我链接到有关如何确保 Angular 以缩小形式加载的文档之前,请知道我已经对每个工厂、控制器、服务 [您命名] 进行了三次检查,以了解 AngularJS's documentation 中概述的正确语法.我还将整个 Angular 应用程序缩减为一个文件和一行,以消除可能的其他注入错误:

(function () {
'using strict';    

var app = angular.module('wdf', []);

})();

我也一直在 HTML 中声明应用程序:

 <!DOCTYPE html>
 <html ng-app="wdf" ng-strict-di>
 ...

即使使用 ng-strict-di ,应用程序也可以在未缩小的情况下完全正常运行。我已经为此苦苦挣扎了好几个小时。我可以挖掘的每个线程基本上都告诉我确保我已经正确声明了所有模块的依赖项,但我很确定我已经考虑过:

  1. ng-strict-di 没有发现任何我应该更好地编码的东西
  2. 我已经检查了每一个该死的文件,以确保我遵循了缩小的最佳做法
  3. 最后,该应用程序甚至无法以最简单的形式运行

【问题讨论】:

    标签: javascript angularjs asp.net-mvc minify


    【解决方案1】:

    儿子....当然,我发帖,我找到了问题。

    我未能查看开发人员工具以查看网站是否正确加载了缩小文件。它为捆绑的请求返回 403。此处使用样式包概述的解决方案的工作方式相同。 MVC4 style bundle giving 403

    总之,解决方法是这个变化:

    来自 var angular = new ScriptBundle("~/App")

    var angular = new ScriptBundle("~/wdf")

    然后也将其更改为 HTML:@Scripts.Render("~/wdf")

    希望这可以帮助遇到问题的其他人......

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 2014-11-26
      • 2013-08-27
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      • 2016-08-28
      • 2017-08-13
      • 2013-02-21
      相关资源
      最近更新 更多