Подтвердить что ты не робот

Как отключить кеширование HTML при тестировании в Chrome?

Я думаю, что это из-за кеширования, но я не совсем уверен.

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

Пробовал поиск этого в Интернете, но не смог найти то, что искал.

Я запускаю это на localhost в настоящее время, но меняющийся файл просто HTML

EDIT:

Я знаю, что это не проблема с моими файлами, потому что если я открою его в новом браузере, он загрузит новую версию страницы.

Я пытаюсь использовать хром для тестирования.

EDIT2:

Кроме того, файл, который изменяется, загружается через require.js, поэтому он не является прямым файлом, указанным в URL

4b9b3361

Ответ 1

В вашем вопросе в EDIT2 я заметил, что вы используете require.js. Если вы не хотите отключать кеш браузера, вы можете установить параметр urlArgs конфигурации RequireJS. Require.js имеет параметр конфигурации, который можно использовать для отключения кэшируемых файлов.

Здесь выписка из Requ.js documenation: Require.js urlArgs

urlArgs: дополнительные аргументы строки запроса, добавленные к URL-адресам, которые RequireJS использует для извлечения ресурсов. Наиболее полезно кэшировать бюст, когда браузер или сервер настроен неправильно. Пример настройки bust-кода для

urlArgs: urlArgs: "bust =" + (новая дата()). getTime()

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

Вот пример того, как он может выглядеть:

requirejs.config({
    urlArgs: "bust=" + (new Date()).getTime(),  
    paths: {
        "jquery": "libs/jquery-1.8.3",
        "underscore": "libs/underscore",
        "backbone": "libs/backbone"
    },
});

require(["jquery", "underscore", "backbone"],
    function ($, _, Backbone) {
        console.log("Test output");
        console.log("$: " + typeof $);
        console.log("_: " + typeof _);
        console.log("Backbone: " + typeof Backbone);
    }
);

Ответ 2

Если вы откроете инструменты для создания хрома и нажмите кнопку настроек (значок шестеренки в правом нижнем углу панели инструментов разработчика), во всплывающем окне должна появиться опция "Отключить кеш"

Ответ 3

Что я делаю, когда у меня возникают подобные сомнения, нужно добавить случайный параметр в конце URL-адреса.

пример:

http://localhost/foo/bar.html?randomParam=873738424

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

Обычно приложение не получает ошибку, если есть нераспознанный параметр.

Ответ 4

Если мы проверяем скрипты в файловой системе, а не на локальном веб-сервере, я бы пошел с этим, вместо того, чтобы проверять location.host(в этом случае пустая строка):

var require.urlArgs = (window.location.protocol == 'file:') ? 'bust='+new Date().getTime() : ''

Ответ 5

Включить в раздел главы

<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">

Ответ 6

Попробуйте очистить кеш браузера перед перезагрузкой страницы (ctrl + shift + delete).

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

Ответ 7

Не принимать во внимание: Функции, похоже, не разрешены при компиляции с помощью r.js.: (

Piggie-backing на BarDev, как насчет чего-то вроде этого:

requirejs.config({
    urlArgs: (function(){
        return (location.host=='localhost') ? 'bust='+(new Date().getTime()) : '';
    }())
});

Теперь вы можете оставить этот код там и никогда не беспокоиться о непреднамеренном сбое кеша в процессе производства.