LoginSignup
5
8

More than 3 years have passed since last update.

Rails ページ移動した際にリロードしないとJSが機能しない

Posted at

調べた所どうやらTurbolinksが原因でJavaScriptが動かない・起動しないみたいです。

Turbolinksとは

Gemに最初から組み込まれているもので以下の2つの機能を持ったものです

  • リンクでのページ遷移の際に、非同期でhtmlリクエストを送り、headタグでのcss/js/imgの再読込を省略することで、画面遷移を高速化する。
  • ブラウザの進む・戻るによる画面遷移では、キャッシュを利用し復元することで、htmlのリクエストを行わない。 つまり再読み込みを省略しているためjsが機能しなくなってるみたいです

[参照]https://freelance-in-six-month.com/tech-blog/rails-turbolinks-js-notworking/

対象方法

1.$(document).on('turbolinks:load', function() {  を記入する
jsファイルの冒頭に

$(document).on('turbolinks:load', function() {
処理内容

を記入する事でロードしてくれるので機能します
2.Gemを消してしまう
TurbolinksのGemを消してしまう事でロードされない事を防ぐ事ができる
ただ元々はTurbolinksは高速化する機能がメインですので消すより1番の方をするのが良いのかと個人的に思いました。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8