Rails4 でフォントを追加し、ローカルの production モードで使用する

フォント指定をした fonts.css.scss.erb を app/assets/stylesheets/ 以下に配置する。

@charset "utf-8";

@font-face {
  font-family: 'font_name';
  src: url('<%= asset_path "font_name.ttf" %>') format('truetype');
  font-style: normal;
  font-weight: normal;
}

フォント指定をした fonts.css.scss.erb を先に読み込むために app/assets/stylesheets/application.css で指定する。
require_tree . より前に記述する。

 *= require_self
 *= require fonts
 *= require_tree .

フォントを app/assets/fonts/ 以下に配置して、config/application.rb にアセットのパス指定とプレコンパイル指定をする。

module SomethingClass
  class Application < Rails::Application

    ...
    config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
    config.assets.precompile += %w(.ttf)
  end
end

config/environments/production.rb ファイルの config.serve_static_assetstrue にする。

config.serve_static_assets = true

development 環境で public/assets/ 以下のファイルを二重読込させないように、
config/environments/development.rb ファイルに config.serve_static_assets を追加して false にする。

config.serve_static_assets = false

production モードでアセットをプレコンパイルする。

$ rake assets:precompile RAILS_ENV=production

production 用データベースを生成する。

$ rake db:migrate RAILS_ENV=production

production モードでサーバを起動する。

$ rails s -e production
«
»