Railsアプリケーションからturbolinksを外す
rails new hoge で生成されたファイルを眺めていく。hoge/app/views/layouts/application.html.erb が、Railsが出力するHTMLの外枠になるらしい。
<html> <head> <title>Hoge</title> <%= stylesheet_link_tag 'application', media: 'all','data-turbolinks-track' => true %> <%= javascript_include_tag 'application','data-turbolinks-track' => true %> <%= csrf_meta_tags %> </head> <body> <%= yield %> </body> </html>
Railsの出力するHTMLは基本的にこのHTMLをテンプレートとして生成され、コンテンツ本体は <%= yield %> の部分に出力される模様。Rubyの文法は分からなくっても、内容は大体読めるけれど、data-turbolinks-trackって何よ?って調べたところ、HTMLレンダリング高速化とバーターで、UIのコーディング時にいろいろと考慮することが増えるシロモノであることが分かった。
れっきとした設計思想があって、アプリケーションにデフォルトで組み込まれているのだとは思うけれど、実装するときの関心事や制約が増えるのはちょっといただけない。
動作の仕組みから察するに、ページごとに異なるJavaScriptを記述するRIAでは、HTMLレンダリング高速化の効果も低いだろうということで、turbolinks を完全に外すことにする。
以下がその手順。
まずは、turbolinks が組み込まれているかを以下で確認
> gem list
gemファイルに記述された依存関係を切る
hoge/Gemfileの該当業をコメントアウト
gem 'turbolinks' ↓ #gem 'turbolinks'
turbolinks をアンインストール
> gem uninstall turbolinks
確かに消えたことを以下で確認
> gem listあとは、すでに組み込まれてしまっている依存関係を切る。
application.html.erbの修正
冒頭部分から、data-turbolinks-track の記述を削除
<html> <head> <title>Hoge</title> <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_include_tag 'application' %> (以下省略)
application.jsの修正
hoge/app/assets/javascripts/application.js から、turbolinks の記述を削除
//= require turbolinks ↓ (この行を削除)
これで完了(たぶん)。
コメント
コメントを投稿