Звезды Ratyrate не загружаются в производстве (heroku)

Итак, я получил ratyrate, отлично работающий в разработке, добавив

<%= javascript_include_tag 'ratyrate.js', "data-turbolinks-track" => false %>

к телу моего взгляда. До этого звезды загружались только при прямом доступе к URL-адресу или обновлении страницы.

Теперь у меня точно такая же проблема (звезды не загружаются при доступе к странице по ссылке) при развертывании моего приложения на героку!

Я надеюсь, что этой информации достаточно (с удовольствием предоставлю больше) и что кто-то сталкивался с этим раньше/есть идеи! Спасибо!

решено — см. ответ


person DanaeB    schedule 17.05.2015    source источник


Ответы (3)


Итак, проблема была в том, что я забыл запустить rake assets:precompile. Решение для разработки, упомянутое в вопросе, должно работать.

РЕШЕНИЕ

Добавьте <%= javascript_include_tag 'ratyrate.js', "data-turbolinks-track" => false %> к заголовку (кажется, работает быстрее) или тегу body в вашем представлении.

Также добавьте Rails.application.config.assets.precompile += %w( ratyrate.js ) в config/initializers/assets.rb.

Тогда убедитесь, что вы запускаете rake assets:precompile, чтобы не выглядеть таким же глупым, как я!

Надеюсь, это поможет кому-то :)

person DanaeB    schedule 17.05.2015

Мой способ исправить это:

jquery.raty.js

переименуйте jquery.raty.js в jquery.raty.js.erb и замените параметры изображений на assets_path, например:

cancelOff : 'cancel-off.png'

станет

cancelOff    : '<%= asset_path('cancel-off.png') %>'

raty_helper.rb

Я переместил метод rating_for из raty helper в один из моих файлов помощников, но мне все равно пришлось переопределить некоторые вещи, например запретить пользователю оценивать себя, что не сработало из коробки.

Изменения, которые я сделал в этом файле:

star_path    = options[:star_path]    || ''
star_on      = options[:star_on]      || image_path('star-on.png')
star_off     = options[:star_off]     || image_path('star-off.png')
star_half    = options[:star_half]    || image_path('star-half.png')
cancel_on    = options[:cancel_on]    || image_path('cancel-on.png')
cancel_off   = options[:cancel_off]   || image_path('cancel-off.png')

в основном я удалил / перед каждым именем изображения, например:

star_on      = options[:star_on]      || image_path('/star-on.png')

теперь я могу нажать на героку, и он работает, как и ожидалось, без необходимости запускать предварительную компиляцию ресурсов на моей локальной машине и отправлять все это на героку.

person rmagnum2002    schedule 30.05.2015

Это происходит из-за того, что расположение изображений не ссылается на конвейер ресурсов. Мне пришлось создать новый вспомогательный файл, чтобы переопределить методы rating_for для извлечения изображений из конвейера ресурсов.

  1. Создайте новый вспомогательный файл (raty_helper.rb) в config/initializers.
  2. Добавьте «модуль RatyHelper» в строку 1 нового файла.
  3. Скопируйте строки со 2 по 144 с сайта https://github.com/wazery/ratyrate/blob/master/lib/ratyrate/helpers.rb в ваш новый помощник.
person Alex Irwin    schedule 20.04.2017