2
A
回答
2
如果你有才能通過PHP的CSS,你可以強制緩存頭被髮射,因此瀏覽器可以緩存輸出如果願意:
<?php
header('Cache-control: max-age=3600'); // cache for at least 1 hour
header('Content-type: text/css');
readfile('css1.css');
readfile('css2.css');
etc...
2
你爲什麼不只是使用@import
在全局CSS文件,並鏈接到你的HTML文件?
+0
公平地說,在某些情況下創建單個文件可以獲得性能上的提升,只要他解決了緩存問題(並且還會發現性能損失,這是一個應該衡量的折衷事項)。 – 2010-08-12 23:42:58
1
0
我使用的代碼發佈波紋管。
它遵循Google的頁面速度建議。
請注意readfile
比include
更快,因此應該使用。
<?php
#$off = 0; # Set to a reasonable value later, say 3600 (1h);
$off = 604800; # Set to 1 week cache as suggested by google
$last_modified_time = filemtime('csscompressor.php');
$etag = md5_file('csscompressor.php');
ob_start("ob_gzhandler");
ob_start("compress");
header('Content-type: text/css; charset="utf-8"', true);
header("Cache-Control: private, x-gzip-ok=''");
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
header("Etag: $etag");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $off) . " GMT");
// load css files
readfile("global.css");
readfile('jquery-theme.css');
// ...
?>
你也應該服務於所有的CSS和JavaScript的網頁是這樣的:
<script src="http://example.com/myjavascript.js?v=<?=$version=?>" ></script>
的$version
變量由你掌控。它應該在站點範圍的配置文件中設置。每次您直接推送更新時,您都可以在一個地方更改版本,每個看到新內容的人都會推送它,而不依賴於緩存。
相關問題
- 1. 合併CSS文件
- 2. 合併多個XML文件
- 3. 合併多個.mp3文件
- 4. 合併多個KML文件
- 5. 合併多個XSD文件
- 6. 合併多個CSV文件
- 7. 合併多個TIFF文件
- 8. 合併多個mp3文件
- 9. 合併多個CSV文件
- 10. 合併多個csv文件
- 11. Linux合併多個文件
- 12. 多個文件合併
- 13. 將多個CSS文件合併到一個PHP中
- 14. 簡單的方法將多個CSS文件合併爲一個?
- 15. 將多個css文件合併爲一個
- 16. 合併多個文件與Laravel混合
- 17. 工具合併3個CSS文件
- 18. 合併和縮小多個CSS/JS文件
- 19. 多個JavaScript文件合併爲一個
- 20. 合併兩個或多個Excel文件
- 21. 批合併多個文件到一個
- 22. 如何從多個目錄/文件夾合併多個文件
- 23. 合併多個CSV文件合併成一個excel表
- 24. 合併多個的.csv文件合併成一個
- 25. 合併多個PDF文件合併成一個用PHP Ghostscript的
- 26. 合併多個文本文件,合併今天創建的文件的條件
- 27. 如何合併多個日誌文件合併成一個.LDF文件在SQL2000
- 28. 合併多個JSON文件Json.NET
- 29. Browserify多個文件合併爲單束
- 30. 合併多個CSV文件perl
你發送了哪些緩存標題?瀏覽器是否設置爲緩存文件? – Douglas 2010-08-12 23:10:24
您可以運行一次PHP腳本並將輸出保存爲服務器上的文件。這種方式的開銷較少,緩存應該是開箱即用的。 – cbednarski 2010-08-13 01:58:17