Браузер (Chrome, Safari et c.) Продолжает показывать старый HTML веб-сайт, даже после обновлений - PullRequest
0 голосов
/ 13 января 2020

Я создал сайт в HTML, CSS, Bootstrap 4 и c. и др c. через атом. Каждый раз, когда я делаю изменения и загружаю новую версию на платформу хостинга (в моем случае HostPresto), браузеры загружают предыдущую (предположительно кэшированную) версию. Я знаю, что браузеры используют кэшированные данные для загрузки и эффективности данных et c. Однако моя цель - заставить любой браузер перезагрузиться с нуля, ТОЛЬКО если какая-то часть сайта изменилась. Как мне это сделать?

В течение нескольких лет я видел некоторые ответы на stackoverflow на подобные запросы, где люди предлагали использовать код в заголовке веб-сайта для эффективной очистки файлов cookie и кэшированных данных при каждой их загрузке. , Я не хочу делать это все время, так как чаще всего не будет никаких изменений, и мой веб-сайт будет менее эффективным.

Мой хостинг-провайдер сказал, что это поможет, если я загружу ВСЕ файлы сайта каждый раз меняются только немного. Я попробовал это сегодня, и это не работает - мне все еще нужно очистить кеш, чтобы он загружался правильно.

Может кто-нибудь помочь мне разобраться, что делать, чтобы любой браузер мог определить, когда произошли изменения сделал на мой сайт, чтобы он загружал их автоматически? Спасибо!

1 Ответ

1 голос
/ 15 января 2020

Я решил, так сказать, свою собственную проблему, поэтому я решил опубликовать ответ здесь, на случай, если он поможет другим.

По сути, я заметил, что файлы HTML всегда будут отражать последние изменения. Однако, это были CSS файлы, которые не будут. Файлы CSS были виновниками загрузки из кэша браузера.

Чтобы исправить это, я начал добавлять версии в мои файлы CSS, чтобы браузер загружал только новый файл CSS когда CSS обновляется. это работает так:

  • Имя файла CSS не изменяется. То есть и всегда было styles.css. Вы могли бы назвать это как-то еще.

  • Старый вызов, который я сделал для моего CSS файла в заголовке файла HTML, был: <link rel="stylesheet" href="css/styles.css">.

  • Новый вызов: <link rel="stylesheet" href="css/styles.css?version=1.0">

Все, что я сделал, это добавил ?version=1.0 в конец имени файла CSS в заголовке HTML. Если номер версии изменится, браузер загрузит самую новую версию. Если номер версии совпадает, он не загружает самую новую версию.

Я думаю, что для некоторых это будет довольно просто, но, поскольку мне удалось отсортировать его самостоятельно, я подумал, что было бы полезно поделиться с остальными. Теперь нет необходимости добавлять жесткий код в заголовок HTML, который приводит к ненужной перезагрузке с нуля и приводит к потере эффективности!

...