質問: Rails (4.2.0) + Unicorn + Nginx の構成でアプリの作成をしています。 その際に以下の 2 つで動作が違うことに気づきました。 1. `link_to` や直接 view に a タグでリンクを書いたページ。(仮に **http://test/sample/new** とします。) 2. 上記の表示後にリロードした時や、ブラウザで直接 **http://test/sample/new** を開いたとき。 「1」 の際に sample コントローラーの new のページだけリクエストがくるのに対し、 「2」では JS や CSS などのファイルすべてにアクセスが来ます。 (`Asset Pipeline`は利用せず、public 以下に js や css をおいております。) 「1」の時に CSS や JS の一部が表示されずにページが動作しない (bootstrap の表示がされていないものがある、フォームの送信ができない) 状態となります。 ブラウザキャッシュ関連かと思い、CSS などに対して **?t=yyyymmddhhmmss** などの動的な時刻を設定したのですが、動作的には変わりませんでした。 「1」の状態では Rails 、Unicorn の **development.log** や、**unicorn.log** 、nginxの **access.log** など確認したのですが、 リクエストはコントローラーのアクションへ一つだけですし、Live HTTP headers でもリクエストは一つしか送っていないようでした。 ページ内の全ファイルをリロードかけるよう制御を行いたいのですが、設定部分でどこが制御しているものかわからず困っております。 設定ファイルなど開示していない状態で恐縮ですが、アドバイスいただければ助かります。
回答: Rails 4 では、デフォルトでTurboLinksが有効になっています。これは、特定の条件に限りページ遷移をAJAXに置き換えるので、CSSやJSなどへのアクセスが発生しません。(ですので、それを前提にしてCSS/JSを書いておく必要があります。) TurboLinks を無効にする方法は が参考になります。