У меня есть приложение для рельсов 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 не отображает на странице. Я предварительно скомпилировал активы.
У меня есть рельсы 12 фактора, но 'конфигурация .assets.compile = false'. Теперь изменилось. – miler350
хорошо, дайте мне знать, что произойдет потом. –
Кроме того, отправляйте журналы, так как они очень полезны. –