自定义字体在我的rails应用程序中无效?

时间:2013-08-15 14:58:20

标签: css ruby-on-rails

我试图在我的rails应用中使用自定义字体,但无法弄清楚我做错了什么。我在资源文件夹中创建了一个名为fonts的文件夹,其中包含我使用的两种字体。然后我在我的css文件中调用了两个字体home.css.scss.erb

CSS:

@font-face {
font-family: 'Proxima Nova';    
src: url('<%= asset_path(/assets/fonts/ProximaNova-Regular.otf) %>', font);
font-weight: normal;
font-style: normal;
}

@font-face {
font-family: 'Gotham';    
src: url('<%= asset_path(/assets/fonts/Gotham-Medium.ttf) %>', font);
font-weight: normal;
font-style: normal;
} 

然后在application.rb的配置文件夹中我添加了

config.assets.paths << "#{Rails.root}/app/assets/fonts"

但这似乎仍然没有奏效......任何想法为什么?

2 个答案:

答案 0 :(得分:5)

之前我使用过自定义字体,但从不需要使用asset_path帮助器。在CSS中使用相对路径就足够了。我的设置类似于:

# config/application.rb
config.assets.paths << Rails.root.join("assets", "fonts")

# CSS
@font-face {
  font-family: 'Proxima Nova';    
  // No need any embeded Ruby code here
  src: url('fonts/ProximaNova-Regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Gotham';    
  src: url('fonts/Gotham-Medium.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
} 

答案 1 :(得分:0)

在Rails 4.2中:

your_controller.scss

@font-face {
  font-family: "Tungsten-Bold";
  src: url('Tungsten-Bold.otf') format("opentype");
  font-weight: normal;
  font-style: normal;
}

在config / initializers / assets.rb

Rails.application.config.assets.paths << "#{Rails.root}/app/assets/fonts"

Rails.application.config.assets.precompile += %w( .svg .eot .woff .ttf .otf)

将字体文件放入&gt;&gt; app / assets / fonts /