Позвольте мне сначала упомянуть, что я сделал кое-что, но не могу найти правильный ответ на то, что я буду искать.
Я работаю над сайтом, где я использую несколько внешних ресурсов:
- Google Analytics (//www.google-analytics.com/analytics.js)
- Последняя версия jQuery (http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js)
- Google Fonts (http://fonts.googleapis.com/css?family=Lato:400,300)
Использовать сеть доставки контента (CDN)
Я получаю оценку "F" в разделе "Использование сети доставки контента (CDN)". Другой SO Post ссылается на 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
Как мне пойти, чтобы исправить это? Мои локальные файлы позаботились о моем .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>
Этот SO post кажется, что это либо невозможно, либо я вызываю локальный script, где я использую свою пропускную способность для загрузки (и кэширования) требуемого внешние файлы.
Итак, имея в виду эти вещи, вот что я смотрю:
- Внешние ресурсы должны быть CDN, но YSlow читает мои локальные предпочтения, которые будут варьироваться от пользователя к пользователю, поэтому мне нужна альтернатива решению
about:config
, предложенному официальным сайтом YSlow. - Срок действия истекает на сервере, где находится файл, поэтому у меня нет доступа к определению его значений срока действия. Итак, из того, что я собираю, я мог переносить эти файлы на свой сервер или использовать локальный PHP файл и кэшировать его из указанного файла PHP, расположенного на моем сервере, но это не кажется оптимальным. Есть ли способ обойти это?