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
 */

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

http://guides.rubyonrails.org/asset_pipeline.html

Другие вопросы по тегам