Использовать внешние кеширование браузера
Я использовал статистику google pagespeed для проверки производительности моего узла nodejs. Для некоторых внешних файлов он говорит, что использует кэширование браузера, но я не знаю, как это сделать?
Использовать кеширование браузера
Установка даты истечения срока действия или максимального возраста в заголовках HTTP для статических ресурсов указывает браузеру на загрузку ранее загруженных ресурсов с локального диска, а не по сети.
Используйте кеширование браузера для следующих ресурсов кэширования:
http://maps.googleapis.com/... kwPPoBErK _-- SlHZI28k6jjYLyU & sensor = false (30 минут)
http://www.google-analytics.com/analytics.js (2 часа)
Кто-нибудь, пожалуйста, помогите мне в этом.
Ответы
Ответ 1
Одним из решений является обратное проксирование ресурсов Google. Затем вы можете добавить Cache-Control и другие заголовки кеширования. Если вы используете Apache, вы можете выполнить его следующим образом в файле httpd.conf:
ProxyRemote http://www.google-analytics.com http://yourinternalproxy:yourport
<Location /analytics.js>
ProxyPass http://www.google-analytics.com/analytics.js
ProxyPassReverse http://www.google-analytics.com/analytics.js
Header set Cache-Control "max-age=86400"
</Location>
Недостатками этого являются:
- Вы будете перенаправлять много дополнительного трафика через ваши серверы.
- Очевидно, что обновление, сделанное Google, займет больше времени для пользователя вашего сайта.
Ответ 2
Если у вас нет доступа к файлу httpd.conf как rudolfv answer, здесь есть несколько вариантов:
- Самый простой способ - вы можете копировать его содержимое каждый день, чтобы убедиться, что вы обновлены.
- мы можем использовать полномочия cron, есть хороший образец script, используя php опубликованный здесь
-
используйте php script для генерации аналитики google script по каждому запросу "на лету":
$context = stream_context_create(['http' => ['Content-Type' => 'text/javascript', 'enable_cache' => true, 'enable_optimistic_cache' => true, 'read_cache_expiry_seconds' => 86400,]]);
echo file_get_contents("http://www.google-analytics.com/analytics.js", false, $context);
-
используйте мощность .htaccess, если ваш хостинг-провайдер, разрешающий mod_headers и mod_proxy
RewriteEngine On
Header set Cache-Control "max-age=86400"
RewriteRule ^js/analytics.js http://www.google-analytics.com/analytics.js [P]
ИЗМЕНИТЬ
- Существует также альтернативное решение по устранению этой проблемы, которое найдено здесь.