8127


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 でもリクエストは一つしか送っていないようでした。

ページ内の全ファイルをリロードかけるよう制御を行いたいのですが、設定部分でどこが制御しているものかわからず困っております。

設定ファイルなど開示していない状態で恐縮ですが、アドバイスいただければ助かります。


CC BY-SA 3.0
2015-03-19T10:11:25.943
8126
2015-03-19T11:27:52.053
2015-03-19T11:27:52.053
7926
8919
question
ruby-on-rails
RailsでのWebブラウザからのリクエストの仕組みについて


Rails 4
では、デフォルトでTurboLinksが有効になっています。これは、特定の条件に限りページ遷移をAJAXに置き換えるので、CSSやJSなどへのアクセスが発生しません。(ですので、それを前提にしてCSS/JSを書いておく必要があります。)

TurboLinks を無効にする方法は <http://qiita.com/kazz187/items/12737363d62b9c91993c>
が参考になります。


CC BY-SA 3.0
2015-03-19T10:18:33.293
8127
2015-03-19T10:18:33.293
76
8126
answer