Bootstrap 3+Rails 4 - Certain Glyphicons not working
Solution 1:
I had the same problem and found a solution. Full credit goes to Eric Minkel, who wrote a detailed blog post on the topic. I would highly suggest reading it for further reasoning.
-
Edit
app/assets/stylesheets/application.css
by adding:*= require bootstrap
-
Edit
app/assets/javascripts/application.js
by adding://= require bootstrap
-
In
config/application.rb
, add the following afterclass Application < Rails::Application
. It should look like this:class Application < Rails::Application config.assets.paths << "#{Rails}/vendor/assets/fonts"
-
In the terminal, compile your assets by running:
rake assets:precompile RAILS_ENV=development
-
Edit the
bootstrap.css
file by changing@font-face
resource locations from../fonts/
to/assets/
. It should look like this:@font-face { font-family: 'Glyphicons Halflings'; src: url('/assets/glyphicons-halflings-regular.eot'); src: url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/glyphicons-halflings-regular.woff') format('woff'), url('/assets/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); }
You're done. Just restart with rails s
and the glyphicons should appear.
Solution 2:
Just use:
@import "bootstrap-sprockets";
@import "bootstrap";
in your SCSS or SASS file. "bootstrap-sprockets" is required for image and font fix.
Chances are you already have:
@import "bootstrap";
declared in application.scss.
Solution 3:
I was having this same problem. Solved by adding:
@import "bootstrap-sprockets";
above the existing line:
@import 'bootstrap';
in my /app/stylesheets/bootstrap_and_customisation.css.scss file
Solution 4:
I had the same problem. Something is wrong with the font path in bootstrap. Fortunately it is a fairly easy fix:
$icon-font-path: 'bootstrap/';
This fixed it for me. Should go before importing bootstrap-sass. You might need to change the value here.
Solution 5:
Update to this. I was having the same issue and went through the steps provided by the #1 answer from Oddurs. That didn't work for me for some reason. And then I realized it had to do with the file structure in my public folder (not sure why mine was different).
Basically I got it to work by adding "/bootstrap" after "/assets" since all my glyphicons were in a "/bootstrap" folder I believe by default
So instead of this:
@font-face {
font-family: 'Glyphicons Halflings';
src: url('/assets/glyphicons-halflings-regular.eot');
src: url('/assets/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/glyphicons-halflings-regular.woff') format('woff'), url('/assets/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
}
I did this:
@font-face {
font-family: 'Glyphicons Halflings';
src: url('/assets/bootstrap/glyphicons-halflings-regular.eot');
src: url('/assets/bootstrap/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/bootstrap/glyphicons-halflings-regular.woff') format('woff'), url('/assets/bootstrap/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/bootstrap/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
}
in the application.css. Hopefully that helps somebody