0

で開発された REST API がありdjango-tastypieます。非常に重いが可変ではないリソースがいくつかあるので、不要なリクエストを避けるためにブラウザにそれらをキャッシュさせたいと思います。

HTTP Expireヘッダーを 2 年先の日付に設定しました。これがブラウザーで得られるものです。

HTTP/1.1 200 OK

Date: Wed, 16 May 2012 17:29:33 GMT
Server: Apache/2.2.14 (Ubuntu)
Vary: Cookie,Accept-Encoding,User-Agent
Expires: Tue, 06 May 2014 17:29:33 GMT
Cache-Control: no-cache, public
Content-Encoding: gzip
Access-Control-Allow-Origin: *
Content-Length: 1051
Keep-Alive: timeout=15, max=82
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8

私はjQuery.ajaxリクエストを発行するために使用しています。期限切れヘッダーは問題ないように見えますが、ページを更新するたびにリクエストが行われます。

4

3 に答える 3

1

これはあなたの問題です:

Cache-Control: no-cache

仕様から:

これにより、オリジン サーバーは、クライアントの要求に対して古い応答を返すように構成されたキャッシュによってもキャッシュを防止できます。

于 2012-05-16T17:34:29.947 に答える
0

.ajax 呼び出しで、次のように cache: 属性を true に設定します。

$.ajax({ url: postUrl, type: 'POST', cache: true, /* これはデフォルトで true のはずですが、あなたの場合はこれをチェックします*/ data: stuff });

于 2012-05-16T17:39:03.683 に答える
0

このコンテンツが変更される可能性がある場合は、jQuery.ajax で ifModified: true を使用してみてください

于 2012-05-16T17:38:25.673 に答える