2015-03-13 2 views
1

У меня есть приложение для рельсов 4, в котором мы используем cloudfront как CDN.Rails 4 App - 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'%> 

активы/JavaScripts/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 активов на Heroku

И в /config/environments/production.rb

config.assets.compile = true 

Это должно работать

+0

У меня есть рельсы 12 фактора, но 'конфигурация .assets.compile = false'. Теперь изменилось. – miler350

+0

хорошо, дайте мне знать, что произойдет потом. –

+0

Кроме того, отправляйте журналы, так как они очень полезны. –

Смежные вопросы