我没有使用sass而且我没有使用bootstrap gem。
在我的bootstrap.css中我有
@font-face {
font-family: 'Glyphicons Halflings';
src: url('/fonts/glyphicons-halflings-regular.eot');
src: url('/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/fonts/glyphicons-halflings-regular.woff') format('woff'), url('/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
我预先编译并提交(RAILS_ENV=production bundle exec rake assets:precompile
)
预编译的资产最终出现在:public / assets / fonts / glyphicons-halflings -...
但我得到了404 for domain.com/fonts/glyphicons-halflings-regular.ttf
如何让bootstrap.css获取正确的预编译资产?我不想为生产设置e precompile = true
。
答案 0 :(得分:4)
我必须采取措施解决问题:
asset_path
而不是常规路径:在 bootstrap.css.scss :
中@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.woff')) format('woff'), url(asset_path('glyphicons-halflings-regular.ttf')) format('truetype'),
url(asset_path('glyphicons-halflings-regular.svg#glyphicons_halflingsregular')) format('svg');
}
我必须在我的application.rb中添加:config.assets.precompile += %w( *.eot *.svg *.ttf *.woff *.otf)
。从另一个答案我读到,如果字体在供应商/资产中,则需要这样做,否则它们不会被预先编译
RAILS_ENV=production bundle exec rake assets:precompile
和推送