2010-01-20 35 views
5

Tôi đang sử dụng CakePHP với Apache2. Phân tích các trang của tôi bằng công cụ PageSpeed ​​từ Google, tôi tìm thấy hai vấn đề chính. Đầu tiên là tôi nên cho phép gzipping nội dung, thứ hai mà tôi nên tận dụng bộ nhớ đệm của trình duyệt cho các tập tin hình ảnh, javascript và css.Bật tính năng nén Gzip và đặt Thời gian hết hạn của bộ nhớ cache trong CakePHP

Tôi ít nhiều đã tìm thấy cách khắc phục điều này, nhưng nó liên quan đến việc thay đổi tệp .htaccess chính của tôi. Đây không phải là cách thực sự của CakePHP, nếu không có gì vì đó .htaccess là một phần của bản phân phối CakePHP, và tôi phải nhớ giữ nó khi thay đổi phiên bản. Có cách nào tốt hơn để làm điều này?

Đối với người đầu tiên, tôi có thể khắc phục bằng cách đặt

php_value output_buffering On 
php_value output_handler ob_gzhandler 

Tôi cũng đã cố gắng

<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/x-javascript 
</IfModule> 

nhưng tôi không thấy bất kỳ kết quả với tốc độ trang.

Đối với phần thứ hai bây giờ tôi sử dụng

<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType application/x-javascript A8640000 
    ExpiresByType text/javascript A8640000 
    ExpiresByType text/css A8640000 
    ExpiresByType image/png A8640000 
</IfModule> 

và nó loại hoạt động, mặc dù tôi vẫn nhận được thông báo "Các nguồn lực cache sau có chu kỳ cập nhật ngắn. Chỉ rõ thời hạn ít nhất một tháng trong tương lai đối với các tài nguyên sau: blah blah "

+0

sử dụng mã này trong AppController public function beforeRender() { \t \t $ this-> response-> nén() sau đây; \t} – Meer

Trả lời

3

Không có" CakePHP Way "khi nói đến GZIP Compression và bộ nhớ đệm của trình duyệt. Đây chắc chắn là một vấn đề về cấu hình Apache. Bạn sẽ có thể sửa đổi các tệp .htaccess trong thư mục /app của bạn mà không bị ảnh hưởng.

Khi cập nhật/nâng cấp CakePHP, bạn chỉ cần thay đổi tệp trong thư mục /cake. Bạn sẽ không phải bật lại bất kỳ cấu hình máy chủ nào trong các tệp .htaccess của thư mục /app, bởi vì mọi thứ sẽ vẫn giữ nguyên.

Luôn nhớ: mọi thứ trong thư mục /app là trò chơi công bằng.

+0

còn CakePHP :: response-> compress(); ?? tức là thêm chức năng công cộng beforeRender() { \t \t $ this-> response-> compress(); \t} – Meer

0
## 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> 

Để bắt đầu mod_expires mô-đun trong ubuntu chạy lệnh

sudo a2enmod headers 
sudo a2enmod expires 
sudo service apache2 restart 
Các vấn đề liên quan