Раз тема про кэширование, то вот еще небольшая доработка:
Включаем кэширование на стороне клиента для css, js, ico, png, gif (jpg не включил так как картинки могут обновляться, кому нужно - сам добавит). В файл .htaccess добавляем следующие строчки:
Код:
<FilesMatch \.(css|js|ico|png|gif)$>
<IfModule mod_headers.c>
Header append Cache-Control private
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 10 years"
</IfModule>
</FilesMatch>
Включение сжатия css и js без увеличения нагрузки на сервер:
1. Пакуем файлы (с помощью 7-zip или gzip) и кладем на место обычных (расширение у файлов должно остаться прежним, .css или .js). Например, вы берете файл anyname.css, пакуете его 7-zip, у вас получается файл anyname.css.gz, переименовываем его обратно в anyname.css и заливаем на сервер
2. Рядом с пожатыми файлами кладутся файлы с расширением nogzip.css или nogzip.js, которые содержат неархивированные копии. Например, после заливки сжатого файла anyname.css, вы создаете на сервере еще один файл anyname.nogzip.css, который является копией несжатого файла. Для gzip это копирование уже производится чуть выше второй строкой в листинге
3. Добавляем в .htaccess
Код:
<IfModule mod_rewrite.c>
RewriteEngine On
#перенаправляем Konqueror и «старые браузеры»
RewriteCond %{HTTP:Accept-encoding} !gzip [OR]
RewriteCond %{HTTP_USER_AGENT} Konqueror
RewriteRule ^(.*)\.(css|js)$ $1.nogzip.$2 [QSA,L]
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent
#выставляем для всех css/js файлов Content-Encoding
<FilesMatch .*\.(js|css)$>
Header set Content-Encoding: gzip
Header set Cache-control: private
</FilesMatch>
#сбрасываем Content-Encoding в том случае, если отдаем не архив
<FilesMatch .*\.nogzip\.(js|css)$>
Header unset Content-Encoding
</FilesMatch>
</IfModule>
Загружаем jquery с google. У многих пользователей он уже есть в кэше, так что снизим размер загрузки еще на 30кб.
В header.tpl заменяем
Код:
<script type="text/javascript" src="{$content_dir}js/jquery/jquery-1.2.6.pack.js"></script>
на
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>