1

我收到以下错误,我不明白为什么。我尽最大努力改变/检查错误的起源,但对我来说,一切似乎都是正确的。而这个错误只发生在production,在development它工作正常。Angularjs和Rails不能在生产

#error 
Uncaught Error: [$injector:modulerr] Failed to instantiate module recipeApp due to: 
Error: [$injector:nomod] Module 'recipeApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 

#app.js 
var mod = angular.module('recipeApp',[]); 

#application.js 
//= require jquery 
//= require jquery_ujs 
//= require pixel-admin.min 
//= require app 

#config/initializers/productio.rb 
config.assets.compile = false 
config.assets.precompile = ['*.js', '*.css'] 
config.assets.js_compressor = Uglifier.new(:mangle => false) 
config.assets.js_compressor = :uglifier 


#app/views/layout/application.html.erb 
<body class="theme-default no-main-menu main-navbar-fixed" ng-app="recipeApp"> 

,当我通过萤火检查源,我可以看到在这两个jshtml

recipeApp我使用

  • 的Rails 4.1.5
  • Angularjs 1.2.13

UPDATE

对于路由我使用ui.router,我怎么过试图添加为好,但还是一样

#app/views/layouts/application.html.erb 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.4/angular.js"></script> 
<script src="//angular-ui.github.io/ui-router/release/angular-ui-router.js"></script> 

在我

app/assets/javascripts/app.js 

'use strict'; 
angular.module('recipeApp',["ui.router"]); 

回答

0

未捕获的错误:[$注射器:modulerr]如果您未在更新版本的angular中提供ngRoute依赖项,则会发生此错误。

您必须在模块中提供ngRoute依赖项,因为它是新角度版本中的独立模块。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular-route.min.js"></script> 

var app = angular.module('recipeApp', ['ngRoute']); 
+0

感谢您的回答,我想,但还是收到同样的错误。然而即时通讯使用'ui路由器',但即使添加后,仍然是其相同的错误,请参阅我的更新回答 – sameera207 2014-09-13 08:50:30

6

我也遇到了这个问题,发现这里的解决方案:https://teamgaslight.com/blog/4-lessons-learned-doing-angular-on-rails。以为我会分享任何遇到这个问题的人,尽管这个问题相当古老。

生产中的Rails自动缩小变动,使Angular变得混乱。

所以在配置/环境/ production.rb,end前加入这一行:

config.assets.js_compressor = Uglifier.new(mangle: false) 

您的应用程序必须on Rails的4+

+0

嗯,它的工作原理..至少它不会抛出错误了..但在什么成本?加载50%的数据? – 2015-06-22 20:26:24