2010-12-10 20 views
1

私はリンククリックイベントをキャプチャし、ajax、特にjqueryのgetScript経由で転送します。すべてが関連して正常に動作開発でRails respond_to format - .js拡張子が必要ですか?

は、この動作は何とかHerokuの上の生産で行われていないとhtmlファイルが常に返され

respond_to do |format| 
    format.html { 
    #by default renders show.html.haml 
    } 
    format.js { 
    #by default renders show.js.erb 
    } 
end 

フォーマットに対応するため。ファイル拡張子を追加し、フォーマット認識をルートに定義すると、これは正常に機能しますが、これは必要ではないと思いましたか?

ありがとうございます。

+0

これを絞り込むために、開発と生産におけるgetScript要求のHTTP要求と応答ヘッダーを比較します。 Accept for requestとContent-Typeに注意してください。彼らは違いますか? – aceofspades

+0

あなたの答えをありがとう。違いは、レスポンスヘッダ、devテキスト/ javascript、プロダクションtext/htmlだけです。 – mark

+0

respond_toの前にアクションのリクエストヘッダーを記録することはありますか? – aceofspades

答えて

2

誰かがこの問題を抱えていると、私が間違っていたことを説明します。

私は、アプリケーションの高速化のための英雄の実装を利用しています。以前に生成されたダイナミックなWebページがニスからダウンロードされ、次にjavascriptがホームページを呼び出して同じURLに更新され、ページの更新を確認します。これにより、ページレスポンス時間が大幅に短縮されます。非jsユーザーや検索エンジンでは、少し古いコンテンツが表示される可能性があります。

ワニスは受け入れヘッダを区別せず、以前にキャッシュされたhtmlを返しました。これを解決するために、私は単純にajaxリクエストにタイムスタンプのパラメータを追加しました。

+1

もちろん!これが私が "URI Opacity"の公理に同意しない理由です。キャッシュは、HTTPヘッダーを次に尊重することがよくあります。キャッシュを完全に無効にするのではなく、URIに接尾辞(.js)を追加するか、クエリパラメータを追加する必要があります。これは、標準のHTTPリクエストとXHRの両方としてURIにアクセスするときにも発生します。 – aceofspades

関連する問題