スポンサーリンク
概要
Rails6においてデフォルトで組み込まれているturbolinksを削除する方法。
turbolinksとは
ググれば色々と情報が出てくると思うので詳細は省略するが、
簡単に言えば、本来ページ遷移すべき処理を無理やりajaxに変えて、DOMの部分変更に変えるもの。
(SPAのように部分的にDOMを書き換える。)
部分的な画面変更になるので、処理やレスポンスの向上になるが、JSでゴリゴリと処理を記述すると動かなくなったり複数回呼ばれたりなど色々と悪さをする。
また、window.loadなど本来のライフサイクルメソッドが呼ばれないため、独自のイベントでハンドルする必要があるなど癖がある。
先日紹介したSimpleMDEで使う際にも、マークダウンエディタが何個も表示されるなど悪さをするので今回は消すこととした。
削除方法
1.GemFileから消去する。
下記をコメントアウトして、bundleコマンドで更新する。
gem 'turbolinks', '~> 5'
2.参照しているJSから消去
app/javascript/packs/application.js
の下記をコメントアウトする。
require("turbolinks").start()
使用している箇所から消去する。
app/views/application.html.eb
'data-turbolinks-track': 'reload'の部分を消す。
1 2 |
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> |
yarnでturbolinksを消す。
yarn remove turbolinks
最後にキャッシュを消す。
rails tmp:cache:clear