Как установить кеш для файла css/js

Мне нужно использовать кеш для файлов css и js файла, которые я использовал на сайте. мой сайт работает на общем сервере хостинга. с сервером ничего не может быть сделано.

так что может быть решением для использования кеша и сжатия для js и css файлов.

Ответ 1

Если вы используете Apache, я бы начал здесь.

Сжатие и кеширование - это разные вещи.

Для сжатия, PHP Minify или YUI Compressor отличные. Если все остальное не удается, TextMate имеет хороший набор инструментов Javascript Tools, который позволяет сжать ваш код. Вы можете вручную сжать свой код, затем загрузить его и отменить сжатие, чтобы вернуть источник в читаемое состояние. Я не рекомендую это, но я сделал это раньше.

Для кэширования прочитайте сайт askapache.com. Существует несколько простых способов включить mod_expires, mod_compress и другие модули. Поскольку вы находитесь на общедоступном хостинге, вот оговорки, потому что хост может отключить некоторые модули Apache. Я использовал GoDaddy, и они отключили mod_expires. Для конкретной информации о модулях Apache обратитесь к документации поддержки хостов.

Если вам повезет, важные из них включены, и вы можете:

<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>`

Поместите этот код в ваш .htaccess файл, откройте FireFox, затем Firebug, затем YSlow. Запустите тест YSlow, он даст вам знать, работает ли кеширование.

Ответ 2

Если вы можете использовать PHP5, используйте Minify... Он сжимает, обфускает и кэширует ваш HTML/CSS без изменений в script (JS/CSS).

Если вы не можете использовать PHP5 на своем сервере, сжимайте и обфускайте свои файлы с помощью YUI Compressor и кешируйте свои файлы, используя .htaccess

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

Ответ 3

Вам нужен доступ для сервера для управления http headers, который сервер отображает в браузере.