2010-03-29 32 views
11

Tôi phải sử dụng bộ nhớ cache cho tệp css và tệp js mà tôi đã sử dụng trong trang web. trang web của tôi đang chạy trong máy chủ lưu trữ được chia sẻ. không có gì có thể được thực hiện với máy chủ.cách đặt bộ nhớ cache cho tệp css/js

để giải pháp cho bộ nhớ cache và nén cho tệp js và css là gì.

+0

muốn sử dụng bộ nhớ đệm hoặc không sử dụng bộ đệm ẩn? – thecoshman

Trả lời

-1

Bạn cần quyền truy cập máy chủ để quản lý http headers mà máy chủ hiển thị cho trình duyệt.

7

Nếu bạn có thể sử dụng PHP5, hãy sử dụng Minify ... Nó sẽ nén, làm xáo trộn và lưu trữ HTML/CSS của bạn mà không thay đổi mã nguồn tập lệnh (JS/CSS).

Nếu bạn không thể sử dụng PHP5 trên máy chủ của bạn, nén & xáo trộn tập tin của bạn với YUI Compressor và cache các tập tin bằng cách sử dụng .htaccess:

<FilesMatch "\.(css|js)$"> 
Header set Cache-Control "max-age=172800, public, must-revalidate" 
</FilesMatch> 
+0

Minify là một thư viện tuyệt vời, tôi khuyên bạn nên sử dụng nó rất cao, tôi đã sử dụng nó trên một ứng dụng web lớn và giảm yêu cầu http của tôi xuống 25%. –

+0

_Minify_ không cụ thể là "làm xáo trộn" mã. Chức năng và tên biến vẫn không bị ảnh hưởng, – MrWhite

38

Nếu bạn đang sử dụng Apache, tôi sẽ bắt đầu ở đây.

nén và bộ nhớ đệm là những thứ khác nhau.

Để nén, PHP Minify hoặc YUI Compressor rất tuyệt. Nếu mọi thứ khác thất bại, TextMate có một Gói Công cụ Javascript tốt cho phép bạn nén mã của mình. Bạn có thể nén mã theo cách thủ công, sau đó tải lên và hoàn tác quá trình nén để đưa nguồn trở lại trạng thái có thể đọc được. Tôi không đề nghị điều này, nhưng tôi đã thực hiện nó trước đây.

Để lưu bộ nhớ cache, hãy đọc trang web askapache.com. Có một số cách dễ dàng để bật mod_expires, mod_compress và các mô-đun khác. Vì bạn đang ở trên chia sẻ lưu trữ, đây là hãy cẩn thận vì máy chủ có thể đã tắt một số mô-đun Apache. Tôi đã sử dụng GoDaddy và họ tắt mod_expires. Để biết thông tin cụ thể của máy chủ lưu trữ về các mô-đun Apache, hãy tham khảo tài liệu hỗ trợ máy chủ lưu trữ.

Nếu bạn may mắn, những người quan trọng đang ở trên và bạn có thể:

<IfModule mod_deflate.c> 
    SetOutputFilter DEFLATE 
    SetEnvIfNoCase Request_URI \ 
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary 
</IfModule> 

<IfModule mod_expires.c> 
    ExpiresActive on 
    ExpiresByType image/jpg "access 2 month" 
    ExpiresByType image/gif "access 2 month" 
    ExpiresByType image/jpeg "access 2 month" 
    ExpiresByType image/png "access 2 month" 
    ExpiresByType text/css "access 2 month" 
    ExpiresByType application/x-javascript "access plus 2 month" 
    ExpiresByType text/javascript "access plus 2 month" 
    ExpiresByType application/javascript "access plus 2 month" 
    ExpiresByType image/x-icon "access plus 12 month" 
    ExpiresByType image/icon "access plus 12 month" 
    ExpiresByType application/x-ico "access plus 12 month" 
    ExpiresByType application/ico "access plus 12 month" 
</IfModule>` 

Đặt mã này trong tập tin .htaccess của bạn, mở FireFox, sau đó Firebug, sau đó YSlow. Chạy thử nghiệm YSlow, nó sẽ cho bạn biết liệu bộ nhớ đệm có đang hoạt động hay không.

Các vấn đề liên quan