已解决。
首先,你需要考虑通过 Apache 进行处理。你可以参考这篇指南:http://httpd.apache.org/docs/2.2/caching.html
问题在于 CakePHP 有一种方法可以做到这一点。而且非常不错。
我将为 CSS 文件解释这一点。当然,也可以用于 JS 内容。
1)在 core.php 文件中(位于 app/config/ 下),取消注释此行:
Configure::write('Asset.filter.css', 'css.php');
这行代码告诉 CakePHP 将所有对 CSS 文件的请求都通过 "css.php" 脚本路由。正如其名称所示,它是一个过滤器。我们可以在那里做任何想做的事情。
2) 创建 "css.php" 文件。你需要在 app/webroot/ 目录下创建它。
在那里,你可以获取浏览器请求的文件,并应用一些缓存 HTTP 标头。
比如:
$filepath = CSS . $regs[1];
$output = file_get_contents($filepath);
header("Date: " . date("D, j M Y G:i:s ", $templateModified) . 'GMT');
header("Content-Type: text/css");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + DAY) . " GMT");
header("Cache-Control: max-age=86400, must-revalidate");
header("Pragma: cache");
print $output;
就这样!您的内容将使用指定的标头提供,并且浏览器将知道可以缓存它们。
看看:
http://www.bunchacode.com/programming/get-cakephp-build-in-css-compression-to-work/
那里有一个很好的 css.php 版本,还进行了最小化处理。