Истекает срок действия и проблемы CDNS-YSlow
позвольте мне сначала упомянуть, что я сделал некоторые раскопки, но не могу найти правильный ответ на то, что я буду искать.
Я работаю на сайте, где я использую несколько внешних ресурсов:
- Google Analytics (//www.google-analytics.com/analytics.js)
- последняя версия jQuery (http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js)
- Шрифты Google (http://fonts.googleapis.com/css?family=Lato:400,300)
использовать сеть доставки контента (CDN)
Я получаю оценку "F "На"использовать сеть доставки контента (CDN)". Другой так пост ссылки на FAQ YSlow (прямая ссылка) но это, похоже, указывает на то, что мне нужно определить мои CDN в моем браузере, что, похоже, является быстрым решением для меня, но это не решает проблему в других браузерах и / или устройства.
добавить истекает заголовки
что касается класса" добавить истекает заголовки", я получаю E. проблема в том, что это то, что я получаю:
There are 3 static components without a far-future expiration date.
(2014/2/26) http://fonts.googleapis.com/css?...
(2014/2/26) http://www.google-analytics.com/analytics.js
(2014/2/26) http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
как бы я пошел, чтобы исправить это? Мои локальные файлы все позаботятся о my .htaccess
как показано здесь:
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/ico "access plus 1 year"
ExpiresDefault "access plus 7 days"
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
# access plus 1 year
Header set Cache-Control "max-age=31536000"
</FilesMatch>
этой так пост кажется, что это либо невозможно, либо я вызываю локальный скрипт, где я использую свою пропускную способность для загрузки (и кэширования) требуемого внешнего файлы.
Итак, имея в виду эти вещи, вот на что я смотрю:
- внешние ресурсы должны быть CDN, но YSlow читает мои локальные настройки, которые будут отличаться от пользователя к пользователю, поэтому мне нужна альтернатива
about:config
решение, предложенное официальным сайтом YSlow. - Expires устанавливаются сервером, где находится файл, поэтому у меня нет доступа к определению его значений истечения срока действия. Итак, из того, что я собрал, я могу перенести эти файлы на мой сервер или используйте локальный файл PHP и кэшируйте его из указанного файла PHP, расположенного на моем сервере, но это не кажется оптимальным. Есть ли способ обойти это?
1 ответов
короткий ответ:
вы не можете контролировать многое, когда вы загружаете ресурсы с внешних серверов, но это все еще может быть хорошо для вашего сайта. При использовании такого инструмента, как YSlow, важно не попасть в класс "A" для всего. Лучше всего понимать подсказки, которые дает вам инструмент, и принимать соответствующие решения.
более длинные ответы:
Сеть Доставки Контента
YSlow сообщит о более низких классах для любых доменов он не распознается как CDN. Ты можешь!--14-->добавить имена хостов CDN, тогда он будет отражать лучшую оценку. Я бы добавил fonts.googleapis.com
и ajax.googleapis.com
потому что оба ведут себя как CDNs. Думайте об этом как о сохранении предпочтения в вашей копии YSlow. Добавление доменов здесь фактически не меняет вашу производительность, оно просто улучшает ваш счет.
Истекает Срок Действия Заголовков
вы не можете контролировать заголовки expires для контента, который вы загружаете с другого сайта. Варианты, которые вы могли бы рассмотреть:
- продолжайте использовать внешние сайты; в этом случае они довольно хорошо себя ведут, и ваша производительность, вероятно, будет довольно хорошей. Просто игнорировать низкий класс, что YSlow дает вам.
- размещайте свои шрифты и файлы jQuery локально, затем установите заголовки Far-futures expires, как вы показали в своем
.htaccess
. Это даст вам лучшую оценку YSlow, но фактическая производительность может быть хуже, если ваш сервер медленнее, чем CDNs. (видеть это поэтому вопрос) - используйте внешние сайты, но настройте свой URL; в случае jQuery, если вы укажете на более высоком уровне версии (1.8.0 вместо 1.8), вы получите заголовок Far future expires (см. Это поэтому вопрос)