遇到最奇怪的問題,它沒有任何意義。我已經經歷了很多次這樣的代碼,並在我的智慧結束試圖找出問題所在。基本上用firefox和safari測試一個網站,他們的行爲有所不同。這可能對Javascript或CSS有意義。django模板在Firefox和safari上的評估方式不同
但是,這是django代碼,不是不同的評估。一個簡單的例子:
我的模板代碼:
{% if myvar == 'var1' %}
{{ status }}
{% endif %}
列入標籤是一個簡單的包含標籤,返回幾個變量並更新內容。
在Firefox中,如果myvar評估並顯示狀態變量。然而,safari中完全相同的代碼不起作用。它只適用於刷新頁面(並且不會因爲我啓用了虛擬緩存而無法緩存)
真的,這完全沒有意義!我有一個現場測試服務器,但不能發佈在這裏。如果您給我發送消息可以發送網址。
做了一些挖掘所使用的版本(火狐)具有以下附加HTTP頭,而Safari不(所以我的猜測是,它不檢查更新版本)
「HTTP_IF_MODIFIED_SINCE」,HTTP_IF_NONE_MATCH ,HTTP_KEEP_ALIVE
Django創建服務器端代碼,模板只是在代碼輸出到瀏覽器之前被替換的地方。你是否100%確定它是以不同方式顯示的代碼?你介意分享你的代碼的其他部分,比如說視圖嗎?我們希望看到您正在渲染模板的上下文。 – kovshenin 2010-11-20 22:59:33
也許safari使用緩存,只有當你強制它重新加載? – 2010-11-20 22:59:51
@ kvshenin,謝謝,我明白它是服務器端代碼並提供給瀏覽器。這就是爲什麼它對我沒有意義。 Django對瀏覽器一無所知。它生成要傳送給瀏覽器的html。所以我說沒有意義。 – ismail 2010-11-20 23:26:16