我有一个简单的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
nginx.conf
的conf部分:
location /kds/ {
alias /Users/asheshambasta/code/kds/dist/;
index index.html index.htm;
}
grunt serve
可以毫无问题地加载应用程序。
答案 0 :(得分:0)
当您在AngularJS中看到错误时,例如&#34;未知提供商:aProvider&lt; - a&#34;或者&#34;未知提供者:nProvider&lt; - n&#34;,这意味着AngularJS依赖注入系统无法将参数与提供者匹配。当你在一个不存在的注入函数中有一个参数时,这个错误是合法的,但是......
更常见的是,你的AngularJS代码被缩小了,这需要一些工作。您必须以某种方式注释您的控制器/服务/等,以便AngularJS的依赖注入系统找到它。有关详细信息,请参阅the docs(搜索&#34;缩小和#34;),但这是一个快速的简要说明:
// This injects $scope and $http as the two arguments to the controller.
myApp.controller("MyCtrl", ["$scope", "$http", function($scope, $http) { ... }]);
另一个选项是在构建配置中禁用缩小。