2013-03-07 48 views
0

最近我們遇到了瀏覽器緩存css文件的問題,因此當我們將代碼移動到另一個web服務器時,我們會得到意想不到的結果。 在閱讀了各種解決方案後,我發現css文件可以包含在模板中。而不是寫Django模板'include'css而不是使用鏈接

<link href="/static/css/parentx.css" rel="stylesheet" type="text/css"> 

我們可以把

<style>{% include "static/css/parent.css" %}</style> 

這將嵌入在HTML中的CSS。它還有一個額外的好處,就是可以減少爲css文件回調服務器的次數,但是根本不會緩存css,並且不允許Web服務器提供靜態文件。但是,這些文件非常小,通常約爲12K。

我建議將此作爲一種臨時措施,因爲我剛剛發現資產管理插件的存在看起來做得更好。 我從來沒有見過使用'include'模板命令來獲取css(和javascript)文件,所以也許有一個我不知道的缺點?

回答

0

根本不緩存CSS文件會減慢頁面加載速度,儘管這是不必要的。

儘可能地緩存您的CSS並且需要緩存,當您需要使緩存無效時,肯定的方法是加載另一個文件,我的意思是使用另一個名稱的文件。它可能是parent1391234565.cssparent-v003.cssparent130307.cssparent-4e6ca1437f2d.css。如果你告訴瀏覽器要下載parent-v002.css,你很確定他們的緩存中沒有parent-v003.css

+0

你也可以使用'?v = <一些任意的版本號>技巧,這是強制「剔除」的好方法。 – 2013-03-07 07:32:37