我在Apache2上使用CakePHP。使用Google的PageSpeed工具分析我的网页,我发现了两个主要问题。第一个是我应该启用gzipping内容,第二个是我应该利用浏览器缓存图像,javascript和css文件。
我或多或少找到了如何解决这个问题,但它涉及更改我的主.htaccess文件。这看起来并不像CakePHP,如果没有,因为.htaccess是CakePHP发行版的一部分,我必须记住在更改版本时保留它。有更好的方法吗?
首先,我可以通过添加
来解决问题php_value output_buffering On
php_value output_handler ob_gzhandler
我也试过
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/x-javascript
</IfModule>
但是我没有看到任何使用PageSpeed的结果。
对于第二个我现在使用
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/x-javascript A8640000
ExpiresByType text/javascript A8640000
ExpiresByType text/css A8640000
ExpiresByType image/png A8640000
</IfModule>
它有点工作,虽然我仍然收到消息“以下可缓存资源的生命周期很短。未来至少指定一个月的以下资源:blah blah”
答案 0 :(得分:3)
GZIP压缩和浏览器缓存没有“CakePHP方式”。这肯定更像是Apache配置问题。您应该能够修改.htaccess
文件夹中的/app
个文件而不受惩罚。
更新/升级CakePHP时,只需更改/cake
文件夹中的文件即可。您不必在.htaccess
文件夹的/app
文件中重新启用任何服务器配置,因为其中的所有内容都将保持不变。
永远记住:/app
文件夹中的任何内容都是合理的游戏。
答案 1 :(得分:0)
Popula()
在ubuntu中启动mod_expires模块运行以下命令
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 30 days"
</IfModule>