且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在Ruby on Rails中使用@ font-face?

更新时间:2023-11-10 16:12:46

使用asset_path在css文件中使用资源(在您的application.css文件中添加erb扩展名,然后asset_path在您的CSS规则中可用)

pre $ code> @ font-face {
font-family:'fontello';
src:url('<%= asset_path(fontello.eot)%>');
src:url('<%= asset_path(fontello.eot#iefix)%>')format('embedded-opentype'),
url('<%= asset_path( 'fontello.woff)%>')format('woff'),
url('<%= asset_path(fontello.ttf)%>')format('truetype');
}


I am trying to include my custom font in Rails.

My file fonts are in app/assets/fonts/.

I edited CSS:

# in app/assets/stylesheets/application.css

@font-face {
  font-family: 'fontello';
  src: url('fonts/fontello.eot');
  src: url('fonts/fontello.eot#iefix')format('embedded-opentype'),
       url('fonts/fontello.woff') format('woff'),
       url('fonts/fontello.ttf') format('truetype');
}

I tried to change the path url('assets/fonts/fontello.eot'); url('fontello.eot'); too.

I edited the config:

# in config/application.rb

require File.expand_path('../boot', __FILE__)
require 'rails/all'

Bundler.require(:default, Rails.env)

module Gui
  class Application < Rails::Application
    config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
  end
end

But it doesn't work.

I use Rails 4.0.2.

You need to use asset_path for use an asset in a css file ( add erb extension to your application.css file then asset_path are available in your CSS rules)

@font-face {
  font-family: 'fontello';
  src: url('<%= asset_path("fontello.eot") %>');
  src: url('<%= asset_path("fontello.eot#iefix") %>') format('embedded-opentype'),
       url('<%= asset_path("fontello.woff") %>') format('woff'),
       url('<%= asset_path("fontello.ttf") %>') format('truetype');
}