заставить браузер перезагрузить страницу (игнорировать кеш)

1

Когда я устанавливаю статические ресурсы, такие как js, css, шаблоны на моем веб-сервере, я забываю установить для них период кеширования. по умолчанию веб-сервер устанавливает его "кеш навсегда" (это сервер tomcat и весенний mvc)

<mvc:resources mapping="/resources/**" location="/resources/" />

если не указать cache-period тогда сервер будет отправлять заголовки типа "кешировать его навсегда". теперь я пробую разные способы решить эту проблему:

  1. попробуйте изменить статический URL-адрес ресурса

mvc:resources mapping="/static/**" location="/resources/" cache-period="10800" 

но это не помогает (я думаю, что браузер кэширует всю html-страницу, но это не так)

  1. Я пытаюсь принудительно перезагрузить страницу с помощью JS:

    location.reload (правда)

но это мало помогает

как заставить браузер перезагружать кешированные файлы? PS Я не отправляю кеш файлы для кэширования моих html-страниц

Теги:
spring
browser-cache

2 ответа

1

Вы можете добавить номер версии к URL-адресу

http://mydomin.com/resources/file.css?version=1

Например;

<html>
    <head>
        <link href="resources/file.css?version=1" type="text/css" rel="stylesheet"/>
    <head>
    <body></body>
</html>
0

Я знаю, что у вас нет jQuery или Ajax, помеченных этим, но самый простой способ перезагрузить ваши.js файлы - это использовать функцию jQuery getScript(), которая является просто ярлыком для выполнения запроса ajax http.

$.getScript('../path_or_URL_to_your_js_file.js');

Это загружает внешний ресурс с добавленной к нему меткой времени, поэтому по умолчанию она будет загружаться с сервера, а не из кеша. Вам просто нужно убедиться, что ваш jquery включен, прежде чем вы вызываете функцию getScript.

Чтобы предотвратить кешированные версии ваших.css файлов, вы можете использовать jQuery/ajax для динамического создания элементов ссылок в заголовке html после загрузки страницы, что предотвратит загрузку кэшированного ресурса.

$('<link/>', {
   rel: 'stylesheet',
   type: 'text/css',
   href: 'path_to_the.css'
}).appendTo('head');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню