RailsでIE8の対応(with rails assets)

IE8も推奨ブラウザに含めるプロジェクトに関わることになったのでrails-assetsを使ってIE8に対応していきたいと思います。

やることとしては以下の感じですかね。

  • jquery1.x系の導入(今回は1.9.1)
  • html5shiv.jsの導入
  • respond.jsの導入

テンプレートエンジンはslimを使います。

まずはGemfile

Gemfile
1
2
3
4
5
6
7
8
9
10
# Slim
gem "slim-rails"

source 'https://rails-assets.org' do
  gem 'rails-assets-jquery', "1.9.1"

  # for ie8
  gem 'rails-assets-html5shiv'
  gem 'rails-assets-respond'
end

bundle installしたらconfig/initializers/assets.rbに以下を追記

config/initializers/assets.rb
1
Rails.application.config.assets.precompile += %w(html5shiv.js respond.js)

そしてapp/views/layouts/application.html.slimで読み込みます。

app/views/layouts/application.html.slim
1
2
3
/[if lt IE 9]
  = javascript_include_tag "html5shiv"
  = javascript_include_tag "respond"

最後にapp/assets/javascripts/application.jsでjqueryを読み込みます

app/assets/javascripts/application.js
1
//= require jquery

以上でhtml5shiv.jsとrespond.js、そしてIE8に対応しているjquery1.x版の導入がrails-assetsにて完了です。

Comments