我用 bower 安装的 bootstrap 上线后发现 bootstrap 的 icon 由于找不到资源文件无法显示 我在 application.scss 中引入了 bootstrap *= require bootstrap/dist/css/bootstrap.css 但是字体并没有打包到 pipeline 中,请问如何添加字体资源到 aseet 中
https://github.com/twbs/bootstrap-sass/blob/master/README.md#bower-with-rails
这里有 bower bt sass 版本的做法参考
粗暴的话
FONT_TYPES = %w(*.eot *.woff *.woff2 *.ttf *.otf *.svg)
Rails.application.config.assets.precompile += FONT_TYPES
也接受 Proc
的,所以可以搞类似
ASSETS_TYPES = %w(.png .gif .jpg .eot .woff .woff2 .ttf .otf .svg)
config.assets.precompile << Proc.new { |path| !(path =~ /\/docs\//) && File.extname(path).in?(ASSETS_TYPES) }
但是这样粗暴的话,就会引入很多没用的文件进来,比较好的方法还是首选 gem 形态的 assets
#2 楼 @flowerwrong
如果可以复制进 app 或者是在项目目录范围的话 config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts')
就可以享受到 assets pipeline 了
这块的技巧你直接建立新的 rails 5 工程,看一下 config/initializers/assets.rb
里面都有注释提示的
我最近也试了一下 bower-rails
但是很多项目文件结构太乱,导致总会让 assets pipeline 多编译很多没用的东西。。。
#7 楼 @flowerwrong 哦对,我想起来了...过去我也弄过这事... 另外 rails-assets bower-rails 之类,对于结构太奇葩的项目,都有问题,我最近本来在尝试这样管理 assets,后来还是退回老的方式了