как установить кеш для файла css / js - PullRequest
15 голосов
/ 29 марта 2010

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

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

Ответы [ 3 ]

44 голосов
/ 29 марта 2010

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

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

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

Для кэширования прочитайте сайт 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, он сообщит, работает ли кэширование.

8 голосов
/ 29 марта 2010

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

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

<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>
0 голосов
/ 29 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...