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