解决了。
首先你必须考虑通过 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.php”脚本将所有请求路由到CSS 文件。顾名思义,它是一个过滤器。在那里我们可以为所欲为。
2)创建那个“css.php”文件。您必须在 app/webroot/ 下创建它
在那里,您可以获取浏览器请求的文件并应用一些缓存 HTTP 标头。
就像是:
$filepath = CSS . $regs[1]; //There are some variables that are can be used in this script, take a look to de docs.
$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"); //WEEK or MONTH are valid as well
header("Cache-Control: max-age=86400, must-revalidate"); // HTTP/1.1
header("Pragma: cache"); // HTTP/1.0
print $output;
就是这样!在那里,您的内容将与指定的标头一起提供,并且浏览器将知道可以缓存它们。
看一眼:
http://www.bunchacode.com/programming/get-cakephp-build-in-css-compression-to-work/
有一个很好的 css.php 版本也可以缩小它。