HTML, которая обходит кеш?

У меня есть файл, с которого я ссылаюсь на своем веб-сайте, например,

<a href="#" onclick="location.href='http://example.com/myfile.txt>View!</a>

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

Что-то приятное, как <a bypassCache href='; return false;"">, было бы желательным.

Ответы

Ответ 1

Что-то приятное, как бы желаемое.

В самом деле, вы можете сделать что-то из ссылки: Добавить случайный параметр GET.

<a href="http://example.com/myfile.txt?a=193834923283943842923">View!</a>

Вы можете использовать JavaScript (или, конечно же, серверный язык сценариев, такой как PHP), чтобы сделать это на динамической основе.

Однако самым лучшим способом было бы правильно настроить заголовки кэширования текстовых файлов в первую очередь на стороне сервера. Похищение информации заголовка из Лучший способ отключить кеширование клиентов, должен работать файл .htaccess, такой как:

<Files myfile.txt>
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"
Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
</IfModule>
</FilesMatch>

Ответ 2

Лучший способ - сообщить apache/(веб-серверу), чтобы браузер не позволял кэшировать этот файл, если у вас нет контроля над этим сервером, вы можете избежать кеша, изменив параметры, отправляемые ему, просто добавьте некоторые цифры позади?, например, когда вы создали ссылку, это делает каждый URL-адрес разным, поэтому браузер будет игнорировать кеш, но все ссылки на один и тот же файл, если сервер игнорирует дополнительный параметр. в php:

echo "<a href='http://example.com/myfile.txt?" . time() . "'>View!</a>"

Ответ 3

Просто поместите

<meta http-equiv="expires" content="0">

В раздел заголовка целевой страницы и снова проверьте

Ответ 4

Добавьте случайное число после гиперссылки, например <a href="http://example.com/myfile.txt?rand=12312321321">View!</a>

Создавайте новое случайное число каждый раз, когда загружается страница.

Ответ 5

Вы можете решить свою проблему на уровне сервера. Установите специальную дату истечения срока действия ресурсов txt (или того конкретного), которые соответствуют вашим требованиям. Если вы используете apache, вы можете прочитать mod_expiry для apache здесь