17

ページが本番サーバーと開発サーバーのキャッシュからのものであることを確認する方法はありますか?

すべてのプロジェクトでミドルウェアが使用されているわけではないため、解決策にキャッシング ミドルウェアを含めるべきではありません。ソリューション自体はミドルウェアかもしれませんが。

データが古いかどうかを確認するだけでは、IMO の安全なテスト方法とは言えません。

4

4 に答える 4

20

多くのコンポーネント キャッシングを行っていますが、すべてが同時に更新されるわけではありません。そのため、ホストとタイムスタンプの値を、広く組み込まれているコンテキスト プロセッサに設定します。各テンプレート フラグメントの上部に、次のように貼り付けます。

<!-- component_name {{host}} {{timestamp}} -->

component_name を使用すると、ソースの表示とその文字列の検索が簡単になります。

オブジェクト詳細ページであるビューはすべて、コンテキスト変数「page_object」を定義し、これを base.html テンプレート マスターの上部に配置します。

<!-- {{page_object.class_id}} @ {{timestamp}} -->

class_id() は、すべてのプライマリ コンテンツ クラスで使用されるスーパー クラスのメソッドです。それはただです:

def class_id(self):
    "%s.%s.%s" % (self.__class__._meta.app_label,
                    self.__class__.__name__, self.id)

ページを読み込んで、いずれかのタイムスタンプが数秒以上経過している場合は、コンポーネントがキャッシュされている可能性が高いです。

于 2008-12-08T02:33:16.777 に答える
16

Peter Rowells の提案はうまく機能しますが、タイムスタンプ用のカスタム テンプレート コンテキスト プロセッサは必要ありません。テンプレートタグを使用するだけです:

 <!-- {% now "jS F Y H:i" %} --> 
于 2011-04-06T08:32:14.690 に答える
8

ビューをモックし、ページにアクセスして、モックが呼び出されたかどうかを確認します。そうでない場合は、代わりにキャッシュが使用されました。

于 2008-12-07T21:06:49.150 に答える
2

キャッシュを使用する理由は、パフォーマンスを向上させるためです。サーバーに対して負荷テストを実行して、パフォーマンスをテストします。サーバーのパフォーマンスがニーズに一致する場合は、すべて設定されています。

于 2008-12-07T22:12:02.183 に答える