Как загнать в кеш все ресурсы сайта?
Комментарии: 10
Лично у меня только один вариант — консольный скрипт с wget, который пробежит по всем страницам и закачает их, генерируя тем самым кэш.
Это не быстро, но гарантированно загонит в кэш ВСЕ страницы, которые доступны по ссылкам. То есть, даже динамические, типа вывода каталога с разбивкой на страницы.
wget -m -np -nv -A .html http://sitename.ru/ > /dev/null
Это не быстро, но гарантированно загонит в кэш ВСЕ страницы, которые доступны по ссылкам. То есть, даже динамические, типа вывода каталога с разбивкой на страницы.
Спасибо, Василий! Отличное простое решение.
Немного почитал еще маны и вот итоговая команда:
Еще можно еще придумать скрипт, который будет одновременно запускать несколько копий wget, направленных на разные разделы сайта для ускоренной генерации кэша.
Полезный параметр -l 10 ограничивает глубину выборки ссылок, его можно уменьшить, для скорости.
wget -m -np -nv --spider -l 10 http://sitename.ru/Здесь wget работает в режиме «паука» и просто дёргает страницы, не загружая их.
Еще можно еще придумать скрипт, который будет одновременно запускать несколько копий wget, направленных на разные разделы сайта для ускоренной генерации кэша.
Полезный параметр -l 10 ограничивает глубину выборки ссылок, его можно уменьшить, для скорости.
Заметил, что wget отправляет запросы также и на изображения. Поэтому немного дополнил команду:
wget -m -np -nv -R jpg,jpeg,gif,png,tif --spider -l 10 http://sitename.ru/
Есть одна проблема: wget добавляет index.html для контеёнеров и получает 404.
Если ты используешь Nginx — то добавь своему сайту правило
Если ты используешь Nginx — то добавь своему сайту правило
location ~ ^\/(.*?)\/index\.(html|php)$ {
rewrite ^\/(.*?)\/ /$1/ permanent;
}
Видел вот такой сниппет от самого Боба Рея — bobsguides.com/refreshcache-tutorial.html он легко находится в диспетчере пакетов по названию, и хотя действует намноооого дольше чем предложенный Василием wget, но вот для «простых смертных», не знакомых с wget'ом его вполне можно советовать, как не быстрое, но действенное решение для данной задачи.
Спасибо, Василий, посмотрю какой метод на практике лучше.
Хороший сниппет, но почему-то не кеширует тикеты((
В самом сниппете както не предусмотрено чтобы можно было брать ресурсы не только
'hidemenu' => '0',
'class_key' => 'modDocument',
а это решается копированием и переделкой, или переделкой и отправкой изменений на гитхаб — github.com/BobRay/RefreshCache/ 'OR:class_key:IN' => array('TicketsSection','Ticket','msCategory','msProduct','modDocument'),
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.