Я спросил своего хозяина, поддерживают ли они mod_expires или нет, они сказали мне, что он поддерживается. Я использую CakePHP, и я пробовал следующий код в webroot/.htaccess
и `app_root/.htaccess, но скорость страницы Google - это стиль, учитывая, что есть проблема с кешированием css, js, png, jpg и т.д. Он нашел их 24 часа! как показано на скриншоте ниже
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=31449600, public"
</FilesMatch>
Приведенный выше код принят из этой статьи.
Также я использовал следующее:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 year"
ExpiresByType text/html "access 1 month"
# ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType text/javascript "access 1 year"
ExpiresByType application/javascript "access 1 year"
# ExpiresByType application/x-shockwave-flash "access 1 month"
# ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 year"
</IfModule>
Также я пытался использовать оба кода друг с другом, но Google Speed сказал мне то же самое. Посмотрите следующий снимок экрана:
Мне нужно знать, как я могу решить эту проблему?!!
Изменить ##
Использование firebug в Firefox я заметил, что только ресурсы в
app/views/themed/slate/webroot
не будут затронуты кешем описанные выше, но найденные непосредственно вapp/webroot
, то есть, тематика плохо затронута.
Кажется, что ошибка в cakephp. В cakePHP 1.3+ объекты тематического представления были перенесены с app/webroot/themed/themeTitle
на app/views/themed/themeTitle/webroot
.
В соответствии с документацией CakePHP 1.3 вы можете восстановить старое место (то есть в основном веб-сайте) тематических статических активов, создав app/webroot/theme/themeTitle
Связывание со статическими активами немного отличается от 1.2. Вы все еще можете использовать существующее приложение /webroot/themed и напрямую ссылаться на эти статические файлы. Следует отметить, что вам нужно будет использовать полный путь к ссылка на активы в приложении /webroot/themed. Если вы хотите сохранить свою тему активов внутри app/webroot рекомендуется переименовать app/webroot/themed для app/webroot/theme. Это позволит вам использовать базовый поиск вспомогательного пути. Помимо сохранения производительности преимущества не обслуживать активы через PHP.
Итак, что я сделал для решения этой проблемы, это копирование всех файлов в app/views/themed/slate/webroot
в app/webroot/theme/slate
Следующий снимок экрана из FireFox Firebug, который показывает, что файл изображения истекает через год в секундах: