2016-09-06 66 views
0

我正在使用django頁面緩存修飾緩存只有我的主頁,因此,頁眉和頁腳也獲得緩存。所以,如果請求來自不同的URL,它只從緩存中選擇頁眉和頁腳。因爲我的頁眉和頁腳對於不同的網站是動態的。所以,有些鏈接是給404的。有沒有辦法通過清除頁眉和頁腳或者更好的方法來解決這個問題?Django頁面緩存緩存頁眉和頁腳

回答

2

您可能需要使用template fragment caching feature

如果你更大的控制權後,你也可以使用cache模板標籤緩存模板片段。要讓您的模板可以訪問此代碼,請將{% load cache %}放在模板頂部附近。

{% cache %}模板標記將塊的內容緩存給定的時間量。它至少需要兩個參數:以秒爲單位的高速緩存超時以及給出高速緩存片段的名稱。該名稱將被視爲不使用變量。例如:

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

我仍然還學習如何處理與動態頁面緩存。我會告訴我的解決方案,直到比我更好的人給你一個更有經驗的解決方案。

您需要在模板級別進行緩存(更準確地說,您需要緩存模板的片段)。

由於頁眉和頁腳是動態的,因此只能緩存頁面的正文片段。它可以像做:

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

這將使這個觀點每一個要求讓所有的headerfooter所需的SQL查詢,但body將被緩存。