2015-11-18 3 views
0

У меня возникли проблемы с загрузкой моих файлов .js в производство на Heroku.Rails 4 - .js файлы не работают в производственной среде - Heroku

Я знаю, что файлы извлекаются из конвейера активов, так как они работают в разработке просто отлично, но я не могу получить .js, работающих на производстве.

Я создал /assets/javascripts/notification.js содержащий:

$(document).ready(function() { 
    $("span").click(function() { 
    $(".notice").delay(200).fadeOut(2000, function() { 
    }); 
    }); 
}); 

Мой /assets/javascripts/application.js файл содержит:

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

в развитии, это прекрасно работает.

Когда я раскрываю в Heroku, я могу видеть, что код отображается в пределах одного application.js файла, за исключением документа, готовая функция раздела см ниже производство .js файла:

<script src="/assets/application-b9a733c3cc0929ae852e45a6c3a2a5f6.js" data-turbolinks-track="true"></script> 

Мои config/production.rb содержит :

config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 
config.assets.compile = true 
+0

Я буквально решил эту проблему: мне нужно было запустить рейк-активы: precompile - зачем это нужно запускать? Почему Rails делает это автоматически? Могу ли я вызвать это? – JustDanLee

+0

Много больше информации об этом здесь: https://devcenter.heroku.com/articles/rails-4-asset-pipeline. Вы добавили камень rails_12factor? – Swards

+0

rails_12factor уже был установлен - как было указано в Unixmonkey, это, вероятно, было пропущено из-за более ранней предварительной компиляции. – JustDanLee

ответ

1

Если вы устанавливаете rails_12factor камень as Heroku Recommends он будет автоматически запускать rake assets:precompile на развертывании (через гем зависимость имени rails_serve_static_assets).

Он может пропустить этот шаг, если видит файл public/assets/manifest. * File или a/public/assets, в котором говорится, что вы уже скомпилировали активы, и это не нужно делать снова ,

+0

У меня уже установлен rails_12factor, я думаю, что это было пропущено, что лучший способ избежать этого пропущен в будущем? – JustDanLee

+0

@JustDanLee Проверьте результат, когда вы развертываете для более твердого ответа, но я думаю, вы должны изменить 'config.assets.compile' на' false'. Я только что проверил несколько моих приложений, и они все еще «ложны» и отлично работают на Heroku. – Unixmonkey

+1

Очень странно, если я изменю на false, активы не отображаются. Даже если я запустил гейкку, запустите rake assets: precompile – JustDanLee

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