0

我有一个简单的AngularJS应用程序,我用它grunt serve来搭建代码并对其进行测试。我现在希望将代码部署到使用的服务器上,nginx并且我正在使用在文件夹grunt build中生成代码的任务来执行此操作。./dist我现在希望将此代码传输到可以托管它的服务器。

我不知道该错误是否与缩小代码有关,但应用程序无法运行。

错误是:

    Error: [$injector:unpr] Unknown provider: aProvider <- a
http://errors.angularjs.org/1.2.6/$injector/unpr?p0=aProvider%20%3C-%20a
    at http://localhost/kds/scripts/ded94bd9.vendor.js:3:30474
    at http://localhost/kds/scripts/ded94bd9.vendor.js:4:13890
    at Object.c [as get] (http://localhost/kds/scripts/ded94bd9.vendor.js:4:13194)
    at http://localhost/kds/scripts/ded94bd9.vendor.js:4:13985
    at c (http://localhost/kds/scripts/ded94bd9.vendor.js:4:13194)
    at d (http://localhost/kds/scripts/ded94bd9.vendor.js:4:13440)
    at Object.e [as instantiate] (http://localhost/kds/scripts/ded94bd9.vendor.js:4:13587)
    at http://localhost/kds/scripts/ded94bd9.vendor.js:4:29734
    at http://localhost/kds/scripts/ded94bd9.vendor.js:4:22719
    at f (http://localhost/kds/scripts/ded94bd9.vendor.js:3:30909) 

这里出了什么问题?

编辑另外,在 Chrome 网络日志上:http ://cl.ly/image/3z0v3X2n1f3h

和 conf 部分nginx.conf

    location /kds/ {
            alias /Users/asheshambasta/code/kds/dist/;
            index  index.html index.htm;
    }

grunt serve毫无问题地加载应用程序。

4

1 回答 1

0

当您在 AngularJS 中看到“未知提供者:aProvider <- a”或“未知提供者:nProvider <- n”之类的错误时,这意味着 AngularJS 依赖注入系统无法将参数匹配到提供者。当您在不存在的注入函数中有参数时,此错误是合法的,但是...

更常见的是,这意味着您的 AngularJS 代码被缩小了,这需要一些工作。您必须以某种方式注释您的控制器/服务/等,以便 AngularJS 的依赖注入系统找到它。有关更多详细信息,请参阅文档(搜索“缩小”),但这里有一个快速概要:

// This injects $scope and $http as the two arguments to the controller.
myApp.controller("MyCtrl", ["$scope", "$http", function($scope, $http) { ... }]);

另一个选项是在构建配置中禁用缩小。

于 2014-05-07T10:45:13.467 回答