Rails 4 + загрузочный набор
Я пытаюсь настроить bootstrap на Rails4 с помощью bootstrap-sass
, и я получаю эту известную ошибку:
Sprockets::FileNotFound - couldn't find file 'bootstrap'
(in app/assets/javascripts/application.js:16):
Я пробовал следующее:
-
twitter/bootstrap
в application.js
-
gem 'bootstrap-sass', '~> 3.1.0'
находится вне активов группы.
- Также попробовал кучу других вещей в интернете
Я потратил много времени на различные предложения с других сообщений. Как систематически отлаживать это, как настроить bootstrap-sass?
p.s:
Также пытался получить twitter-bootstrap-rails
работать без везения.
Вот несколько файлов
application.js
//= require jquery
//= require jquery_ujs
//= require js-routes
//= require bootstrap
//= require_tree .
//= require bootstrap-slider
application.css.scss
*= require jquery.ui.core
*= require jquery.ui.theme
*= require_self
*= require bootstrap-slider
*= require_tree .
*= stub active_admin
*/
@import "bootstrap";
Gemfile
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.0'
gem 'sass-rails'
gem 'coffee-rails', git: 'git://github.com/rails/coffee-rails.git'
gem 'uglifier', '>= 1.0.3'
gem 'jquery-ui-rails'
gem 'font-awesome-sass'
gem 'less-rails'
gem 'therubyracer', :platform=>:ruby
#gem 'twitter-bootstrap-rails'
gem 'jquery-rails'
#gem 'jquery_mobile_rails'
gem 'js-routes'
gem 'cancan'
gem 'devise'
gem 'figaro'
gem 'haml-rails'
gem 'pg'
gem 'rolify'
gem 'sendgrid'
gem 'simple_form'
gem 'thin'
gem 'rake'
#To use db for storing cookies instead cookie-store
gem 'activerecord-session_store', github: 'rails/activerecord-session_store'
group :development do
gem 'better_errors'
#gem 'binding_of_caller', :platforms=>[:mri_19, :rbx]
#Commenting out platforms part, because may be that stopping this to be used on the dev machine'
gem 'binding_of_caller'
gem 'guard-bundler'
gem 'guard-rails'
gem 'guard-rspec'
gem 'html2haml'
gem 'quiet_assets'
gem 'rb-fchange', :require=>false
gem 'rb-fsevent', :require=>false
gem 'rb-inotify', :require=>false
# Required with Rails panel chrome extension. This Gem should come after better_errors gem
gem 'meta_request'
end
group :development, :test do
gem 'factory_girl_rails'
gem 'rspec-rails'
gem 'pry-byebug'
gem 'pry-stack_explorer'
gem 'pry-rails'
gem 'pry-debugger'
end
group :test do
gem 'capybara'
gem 'database_cleaner'
gem 'email_spec'
end
group :production do
gem 'rails_12factor'
end
gem 'high_voltage'
#Linkedin Logins
gem "linkedin"
gem "omniauth"
gem "omniauth-linkedin"
gem "omniauth-facebook"
#postgres use hstore in active record
#gem 'activerecord-postgres-hstore'
gem 'state_machine'
gem "ruby-graphviz"
#payments
#gem 'stripe',:git => 'https://github.com/stripe/stripe-ruby'
#gem 'anjlab-bootstrap-rails', :require => 'bootstrap-rails', :github => 'anjlab/bootstrap-rails'
gem 'newrelic_rpm'
gem 'pgbackups-archive'
gem 'pg_search'
gem 'acts-as-taggable-on'
#gem 'activeadmin' , github: 'gregbell/active_admin'
gem "activeadmin", git: "https://github.com/gregbell/active_admin"
gem 'kaminari'
gem 'bootstrap-slider-rails'
gem 'bootstrap-sass', '~> 3.1.0'
Ответы
Ответ 1
Установка Bootstrap Gem
1.) Добавить самонаводку Bootstrap:
gem 'bootstrap-sass'
2.) Понять файл Application.css
app/assets/stylesheets/application.css
Application.css принимает все остальные файлы в вашем каталоге /stylesheets
и объединяет их при запуске вашего приложения.
3.) Создайте новый файл SCSS (app/assets/stylesheets/bootstrap_and_customization.css.scss)
@import 'bootstrap';
4.) Требовать Bootstrap JavaScript
...
//= require jquery
//= require jquery_ujs
//= require bootstrap <--
//= require turbolinks
//= require_tree .
5.) Rails Assets
group :production do
gem 'rails_12factor'
end
6.) Установка и перезапуск сервера
Это должно быть!
Ответ 2
В одном из моих проектов (Rails 4.1) мне пришлось включить bootstrap напрямую ( не sass). Возможно, это даст нам подсказку о том, как сделать версию сааса. Итак, ниже приведены шаги для непосредственного включения начальной загрузки:
- Загрузите и извлеките загрузочный
Rails.root/поставщик/активы/начальной загрузки
-
Создайте файл Rails.root/vendor/assets/javascripts/bootstrap.js с таким содержимым:
//= require ../bootstrap/js/bootstrap.js
-
Теперь самая важная часть работы значков. Для шрифта Glyphicons Halflings должны быть переопределены URL-адреса шрифтов. Также должен использоваться помощник asset_path. Поэтому создайте файл Rails.root/vendor/assets/stylesheets/bootstrap.css.erb с таким содержимым.
/*
=require ../bootstrap/css/bootstrap.css
*/
@font-face {
font-family: 'Glyphicons Halflings';
src: url("<%= asset_path 'glyphicons-halflings-regular.eot' %>");
src: url("<%= asset_path 'glyphicons-halflings-regular.eot?#iefix' %>") format('embedded-opentype'), url("<%= asset_path 'glyphicons-halflings-regular.woff2' %>") format('woff2'), url("<%= asset_url 'glyphicons-halflings-regular.woff' %>") format('woff'), url("<%= asset_path 'glyphicons-halflings-regular.ttf' %>") format('truetype'), url("<%= asset_path 'glyphicons-halflings-regular.svg#glyphicons_halflingsregular' %>") format('svg');
}
- Теперь требуется bootstrap в application.js и application.css
application.js
//= require bootstrap
application.css
*= require bootstrap
- И, наконец, пусть конвейер активов должен знать путь к шрифтам и дополнительные расширения для предварительной компиляции. В application.rb добавьте:
config.assets.paths << Rails.root.join("vendor", "assets", "bootstrap", "fonts")
config.assets.precompile += %w( *.eot *.svg *.ttf *.woff *.woff2 )
После этого RAILS_ENV = производственные грабли: precompile должен показать, что это признанные файлы шрифтов и скопировали их в папку общих активов.
Затем, чтобы проверить, работает ли он в процессе производства, можно обслуживать статические активы (в production.rb: config.serve_static_assets = true) и RAILS_ENV = производственные рельсы s
Ответ 3
В итоге я использовал загрузку из размещенного CDN
%link{href: "//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css", rel: "stylesheet"}/
%link{href: "//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" , rel: "stylesheet"}/
%link{href: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css", rel: "stylesheet"}/
Ответ 4
У меня была точно такая же ошибка. Решение заключалось в изменении:
config/environments/production.rb
Линия
config.serve_static_assets = false
к
config.serve_static_assets = true
Я не совсем понимаю, что делает эта строка, но у моей рабочей группы была такая же проблема для проекта, и они изменили эту строку, и она сработала.
Ответ 5
Попробуйте следующее:
Откройте config/application.rb, добавьте следующую строку:
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
В файле config.ru добавьте
require 'bootstrap-sass'
Переименуйте приложение application.css.scss на что-то еще, например. custom_bootstrap.css.scss. Я понятия не имею, почему это имеет значение, но это было в моем случае.
Кроме того, из того, что я понимаю, по умолчанию bootstrap-sass не требует добавления
//require bootstrap
к вашему application.js. По-видимому, это нарушает некоторые функции.
Ответ 6
У меня была такая же проблема: не удалось найти файл "bootstrap-sprockets" с типом "application/javascript"
Единственным решением было прокомментировать в Gemfile
gem 'sass-rails', '~ > 5.0' и вместо этого добавить
gem 'sass-rails', ' >= 3.2'
надеюсь, что это поможет другим участникам.
Ответ 7
Исправление для меня было две части... мой правильный список первым... но только этот список не был исправлением!
gem 'sass-rails', '~> 5.0'
gem 'bootstrap-sass', '~> 3.3.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
Тогда у меня была проблема gemfile.Lock... если кто-то еще не может загрузить файлы и не хочет использовать CDN... проверьте ваш gemfile.Lock и посмотрите, какие версии скомпилированы с gemfile (один является для нас как dev, а другой - тем, что на самом деле выполняется платформой - это вызовет проблемы, если вы попытаетесь изменить gemfile.lock).
Чтобы разрешить блокировку gemfile... закрыть gemfile и gemfile.Lock
- Мне пришлось сначала удалить элементы, о которых идет речь, из "gemfile".
- Я сделал "
gem install <name of gemfile>
", который я хотел для каждого из них.
Затем откройте gemfile и gemfile.Lock, чтобы проверить результаты. Обратите внимание, что вам все равно придется выполнять все настройки bootstrap и т.д. Для каждого из них. Это не помешает запустить rails assets:precompile
.
Примечание. Рельсовые ресурсы: прекомпиляция - это команда рельсов 5.
Ответ 8
добавить в Gemfile
gem 'font-awesome-rails'
выполните установку пакета
добавить в application.css
* = require font-awesome
и перезагрузите сервер рельсов.