2016-09-06 13 views
0

私はdjangoページキャッシュデコレータを使用して自分のホームページのみをキャッシュしています。そのため、ヘッダーとフッターもキャッシュされています。したがって、要求が異なるURLから来た場合、ヘッダーとフッターはキャッシュからのみ選択されます。私のヘッダーとフッターは異なるURLのために動的です。だから、いくつかのリンクは404を与えています。ヘッダーとフッターだけをパージするか、何か良い方法でこの問題を解決する方法はありますか?Djangoページキャッシュがヘッダーとフッターをキャッシュしています

答えて

2

おそらくtemplate fragment caching featureを使用する必要があります。

あなたも、より多くの制御後にしている場合、あなたはcacheテンプレートタグを使用しても、キャッシュテンプレートフラグメントをすることができます。テンプレートにこのタグへのアクセス権を付与するには、{% load cache %}をテンプレートの上部に配置します。

{% cache %}テンプレートタグは、一定時間ブロックの内容をキャッシュします。少なくとも2つの引数をとります:キャッシュタイムアウト(秒単位)と、キャッシュフラグメントを与える名前。名前はそのまま使用され、変数は使用されません。たとえば:

{% load cache %} 
{% cache 500 sidebar %} 
    .. sidebar .. 
{% endcache %} 
1

私はまだまた、動的なページをキャッシュに対処する方法を学んでいます。私は私よりも優れた人があなたにもっと経験豊かな人を与えるまで私が解決策だと言うことを伝えます。

キャッシングをテンプレートレベルで行う必要があります(正確には、テンプレートのフラグメントをキャッシュする必要があります)。

ヘッダーとフッターは動的なので、ページの本文部分のみをキャッシュできます。 headerfooterのために必要なすべてのSQLクエリを作るが、bodyがキャッシュされます。これは、このビューにすべてのリクエストを行います

{% include 'header.html' %} 
{% cache 1000 'bodycache' %} 
{% include 'body.html' %} 
{% endcache %} 
{% include 'footer.html' %} 

:次のように行うことができます。

関連する問題