Rails 4 Font未在SCSS中加载

时间:2014-05-15 20:19:05

标签: ruby-on-rails ruby-on-rails-4

我知道这是一个古老的问题,但我一直在挖掘我的头脑。通过SO的所有链接但仍无法解决此问题。

我的字体位于assets目录中的fonts目录中。如果我尝试使用asset-url,则会在我的字体位于目录中时发出错误,说我找不到Barrio字体。

# application.rb
config.assets.paths << "#{Rails.root}/app/assets/fonts"
config.assets.precompile += %w( .otf )

# style.scss
@font-face {
  font-family: "Barrio-Regular";
  src: asset-url("Barrio-Regular.otf");
}

.catagories-list {
  label {
    font-family: "Barrio-Regular, Arial, Helvetica, sans-serif";
    font-size: 18px;
  }
  li {
    a {
      color: #2c2c2c;
    }
    margin-bottom: 10px;
    text-indent: 20px;
    &.active a {
      text-decoration: underline;
      color: #2f2993;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

我认为错误将由此行引起:

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

如果您的应用正在预编译资产(所有资产都放在public文件夹中),这将如何处理?


我们通常这样做:

#app/assets/stylesheets/layout/fonts.css.sass
@font-face
    font:
        family: 'Ionicons'
        weight: normal
        style: normal
    src: asset_url('layout/fonts/IonIcons/ionicons.eot?v=1.4.1')
    src: asset_url('layout/fonts/IonIcons/ionicons.eot?v=1.4.1#iefix') format('embedded-opentype'), asset_url('layout/fonts/IonIcons/ionicons.ttf?v=1.4.1') format('truetype'), asset_url('layout/fonts/IonIcons/ionicons.woff?v=1.4.1') format('woff'), asset_url('layout/fonts/IonIcons/ionicons.svg?v=1.4.1#Ionicons') format('svg')

基本上,将所有字体放在#app/assets/stylesheets/layouts/fonts目录


看过some resources后,我建议:

  

将字体放在app / assets / fonts /中,您无需添加   或编辑application.rb,production.rb或staging.rb中的任何内容。

#app/assets/stylesheets/application.css.scss
@font-face {
    font-family: 'Barrio-Regular'
    src: asset_url('Barrio-Regular.otf')
}

如果您在不更改application.rb的情况下执行此操作,请返回系统响应的内容