2015-03-13 79 views
1

我有一個rails 4應用程序,我們在其中使用cloudfront作爲CDN。Rails 4應用程序 - Heroku/Cloudfront - 資產不能從原產地正確投放

production.rb文件中,我們有下面的代碼:

config.action_controller.asset_host = "example3579.cloudfront.net" 

我們做了一些相當徹底的資產分離。從資產管道的角度來看,這可能不是可取的,但它應該使得調試這個問題非常容易。

我正在處理的特定頁面是users#edit視圖,但問題是普遍的。

users#edit操作使用它自己的佈局:views/layouts/user_edit.html.erb

views/layouts/user_edit.html.erb文件調用這個JavaScript。

<%= javascript_include_tag 'user_edit'%> 

資產/ Java腳本/ user_edit.js

//= require jquery 
//= require jquery_ujs 
//= require jquery.validate.min 
//= require ./webarch/form_validations 

在本地主機,這個工程。我可以訪問JS在這樣的瀏覽器:

http://localhost:3000/assets/user_edit.js 

但在生產與Heroku的,該網站看起來此文件:

<script src="http://example3579.cloudfront.net/javascripts/user_edit.js"></script> 

文件不起作用。我無法在瀏覽器中訪問,但JavaScript不會在頁面上呈現。我已經預先編譯了資產。

回答

1

添加gem 'rails_12factor', group: :production#利於軌道4,5資產在Heroku

而且在/config/environments/production.rb

config.assets.compile = true 

這應該工作

+0

我有軌12的因素,但配置' .assets.compile = false'。現在改變。 – miler350 2015-03-13 13:49:59

+0

好吧,讓我知道接下來會發生什麼。 – 2015-03-13 13:51:18

+0

另外,請發佈日誌,因爲這些都非常有幫助。 – 2015-03-13 13:51:44