3 回答
TA贡献1934条经验 获得超2个赞
如果您的Rails版本介于 > 3.1.0
和 < 4
,将您的字体放置在下列任何文件夹中: Rails版本 > 4
你 必将您的字体放在 app/assets/fonts
文件夹。 注:
若要将字体放置在这些指定文件夹之外,请使用以下配置: config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
Rails版本 > 4.2
,是的 推荐若要将此配置添加到 config/initializers/assets.rb
.但是,您也可以将其添加到 config/application.rb
,或到 config/production.rb
app/assets/fonts
lib/assets/fonts
vendor/assets/fonts
在CSS文件中声明字体: @font-face { font-family: 'Icomoon'; src:url('icomoon.eot'); src:url('icomoon.eot?#iefix') format('embedded-opentype'), url('icomoon.svg#icomoon') format('svg'), url('icomoon.woff') format('woff'), url('icomoon.ttf') format('truetype'); font-weight: normal; font-style: normal;}
确保字体的命名与声明的URL部分完全相同。大写字母和标点符号很重要。在这种情况下,字体应该具有名称。 icomoon
.如果在Rails中使用Sass或更少 > 3.1.0
(CSS文件 .scss
或 .less
),然后更改 url(...)
在字体声明中 font-url(...)
.否则,您的css文件应该具有扩展名。 .css.erb
,字体声明应该是 url('<%= asset_path(...) %>')
.如果您正在使用Rails > 3.2.1
,你可以用 font_path(...)
而不是 asset_path(...)
..这个助手做同样的事情,但更清楚。 最后,在CSS中使用字体,就像在 font-family
部分。如果它被声明为大写,您可以这样使用它: font-family: 'Icomoon';
TA贡献1875条经验 获得超5个赞
现在有个转折:
你应该把所有字体都放进去
app/assets/fonts/
因为他们将要默认情况下,在暂存和生产中获得预编译-它们将在被推送到赫鲁库.放置在
vendor/assets
将要不默认情况下,在暂存或生产时进行预编译-它们将失败。
我坚信把供应商的字体
vendor/assets/fonts
比把它们放进去更有意义app/assets/fonts
..有了这2行额外的配置,这对我来说很好(在Rails 4上):
app.config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') app.config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/
我也在rails 4.0.0
..实际上,最后一行就足以安全地预编译来自vendor
文件夹。花了几个小时才弄明白。希望能帮上忙。
- 3 回答
- 0 关注
- 658 浏览
添加回答
举报