twitter-bootstrap-rails: ошибка загрузки таблиц стилей
Я пытаюсь использовать драгоценный камень Twitter-bootstrap-rails впервые, и у меня возникают некоторые проблемы. Я удалил все таблицы стилей, которые генерирует rails, за исключением application.css и запустил
rails g bootstrap:install less
чтобы получить файл bootstrap_and_overrides.css.less. В соответствии с документацией, вы должны требовать переопределения bootstrap_and в application.css, что я и сделал.
Application.css выглядит так:
*
*= require_tree .
*= require bootstrap_and_overrides.css.less
*= require_self
*/
и bootstrap_and_overrides.css.less выглядит так:
@import "twitter/bootstrap/bootstrap";
@import "twitter/bootstrap/responsive";
// bootstrap variables and mixins
@import "twitter/bootstrap/variables.less";
@import "twitter/bootstrap/mixins.less";
// other auto generated code below
Проблема в том, что когда я получаю эту ошибку при попытке запустить приложение:
NoMethodError in StaticPages#home
Showing /home/sheeka/Documents/workspace/my_projects/ruby/testapps/media_store/app/views/layouts/application.html.erb where line #5 raised:
undefined method `[]' for nil:NilClass
и линия 5 указывает на
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
Когда я удаляю application.css, все загружается без проблем, но нет начальной загрузки. Любая помощь в выяснении этого будет высоко ценится.
1 ответ
Вы пытались отключить турбо-ссылки? Из того, что я понимаю, у турбо-ссылок есть известные проблемы совместимости с библиотеками javascript, такими как гем Foundation-rails и гем twitter-bootstrap.
http://blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4
Я бы сделал это независимо от того, решает ли это проблему или нет, просто чтобы избежать ненужных хлопот. (Если вам не нужны турболинки).
Наконец, у меня ваш файл application.css будет выглядеть так:
*
*= require_tree .
*= require_self
*= require bootstrap_and_overrides.css.less
*/
Я полагаю, что дерево и я должны быть обязательны перед загрузкой и переопределением. Я получил ту же ошибку с фундаментом, когда мне не нужно было загружать его в правильном порядке в конвейере ресурсов. Идея конвейера ресурсов в основном заключается в том, что вы всегда хотите, чтобы текущая таблица стилей конкретного контроллера могла переопределять любые другие таблицы стилей в приложении. Я надеюсь, что это окажется полезным. Это сработало для меня, когда я получил эту ошибку.