新手问题 如何在 Asset Pipeline 中引入第三方 font 资源

lilijreey · 发布于 2016年12月08日 · 最后由 bianjp 回复于 2016年12月09日 · 709 次阅读
24996

我用bower安装的bootstrap 上线后发现bootstrap的icon由于找不到资源文件无法显示 我在application.scss 中引入了bootstrap *= require bootstrap/dist/css/bootstrap.css 但是字体并没有打包到pipeline 中,请问如何添加字体资源到aseet中

共收到 11 条回复
9442

同问,对于非标准的,我要么改源码,要么把依赖的图片和fonts复制到public下面

24996

#2楼 @flowerwrong 感谢, 改源码路径根蛋疼,我用gem 版的bootstrap了

1107

粗暴的话

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

1107

#2楼 @flowerwrong 如果可以复制进app或者是在项目目录范围的话 config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') 就可以享受到assets pipeline了

这块的技巧你直接建立新的 rails 5工程,看一下 config/initializers/assets.rb 里面都有注释提示的

我最近也试了一下 bower-rails 但是很多项目文件结构太乱,导致总会让assets pipeline多编译很多没用的东西。。。

9442

#6楼 @jasl 这样也得改css源代码才行,就像bower rails的做法一样。应该可以弄个工具自动生成一个gem,不知rails-assets是不是这么干的。

1107

#7楼 @flowerwrong 哦对,我想起来了...过去我也弄过这事... 另外 rails-assets bower-rails 之类,对于结构太奇葩的项目,都有问题,我最近本来在尝试这样管理assets,后来还是退回老的方式了

24996

#9楼 @jasl 感谢,只是导入资源还不行,因为源码中写的路径和asset编译后生成的路径不一样! 这个就比较恶心了. 所以没办法,用回gem了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册