🚗
Railsの"data-turbo-track": "reload"とはなにか
Railsのapp/views/layouts/application.html.erb
ファイルには以下のような記述がある。
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
<%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
Turbo Driveを使っているとき、"data-turbo-track": "reload"
をつけることで、アセットに変更があったときにページ全体をリロードするようになる。
ほとんどの場合、Turbo DriveはHTMLのbodyしか変換せず、<head>
に変更は加えない。
しかしCSSやJSに変更点があったとき、そのまま変更されないとユーザーに影響がある。
そんなとき、"data-turbo-track": "reload"
があることでアセットに変更があったときにページ全体をリロードするようになる。結果的にユーザーが最新のデザインや挙動などを享受できる。
Railsにデフォルトで含まれているturbo-rails gemを使う場合は、以下のようにdata-turbo-trackオプションも含めることで、アセットが更新されているかどうかをTurboがチェックし、更新されていればアセットをページに読み込むようになります
アセットパイプライン - Railsガイド
Discussion