1

Я создаю приложение Rails, используя Bootstrap для мобильного масштабирования. Когда я развернулся в Хероку, все мои активы пропали без вести. Я думал, что это было исправлено в Rails 4, но так или иначе. Я предварительно скомпилировал все активы, используя «rails_12factor». Теперь все мои образы и стили рендеринга просто прекрасны, но выпадающее меню необъяснимо ничего не делает.Rails 4 - Прекомпилированные активы, разбивающие мое раскрывающееся меню Bootstrap

Могу ли я что-то сделать неправильно в компиляции? Я пошел;

$ rake assets:precompile 
$ git add . 
$ git commit -a -m "Asset Fix" 
$ git push heroku master 

... и мое меню сломалось.

Вот как оно выглядит сейчас; http://rocky-crag-1181.herokuapp.com/

Изменить размер вашего браузера, чтобы воссоздать перерыв.

Repository at; https://github.com/SoundBank/soundbank02 
+0

Uncaught ReferenceError: $ не определен bootswatch.js: 1 ----- Я видел эту ошибку на консоли. Средства на этой странице все js загружаются перед основным файлом jQuery. положите jQuery.js сверху, а затем снова очистите активы, а затем предикатные активы. Нажмите код. эта ошибка приводит к тому, что выпадающее меню не работает. – SSR

+0

Или вы можете загрузить jQuery дважды на одной странице. поэтому удалите дополнительный. – SSR

+0

Что такое bootstrap.js? – SSR

ответ

0

резервированной версии JQuery и начальной загрузки в моей папке приложения/активах сталкивался как-то во время прекомпиляции производства. Я просто удалил их из каталога, исправил приложение application.js и запустил еще один рейк-ресурс: precompile

Это смутило проблему. Когда старые сценарии отбирались, я смог сначала заказать jquery для загрузки (спасибо SSR).

Теперь как отзывчивое меню, так и фоновая карусель хорошо играют с jquery.

Кстати, базовый шаблон был United by Bootswatch, и связанные скрипты, которые я удалил;

bootstrap.js 
jquery-1.10.2.min.js 

Я буду внимательно следить за конфликтующими сценариями в загружаемых шаблонах с этого момента.

1

Ваше приложение работает с двумя версиями jQuery. rails предоставляет последнюю версию jQuery, поэтому нет необходимости включать дополнительные версии. Если вам нужно сделать, то заменить

//= require jquery

эта линия с JQuery файл

//= require jquery-1.10.2.min.js

, но помните, ваш файл JQuery должен быть в

app/assets/javascript/

Ваш application.html.erb

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 

Эта линия должен быть конец файла, но перед тегом закрытия тела.

В настоящее время на терминале огня эти команды

cd /sites/<app_name> 
rm public/assets -R 
rake assets:precompile 

Здесь вы идете: D

+0

Благодарим вас за все ваши замечательные комментарии. Очень информативно. Я добавил ваш окончательный трекер turbolinks, после чего я сделал версию, требующую изменения для jquery, и на всякий случай разместил копии в каталоге Vendor. Еще нет кубиков. – Peet

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