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