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

Файл JavaScript не обновляется независимо от того, что я делаю

У меня есть внешний файл JavaScript, и как в FireFox, так и в Chrome, будут ли очищены все данные для просмотра, он НЕ будет обновляться ни на что. Я считаю, что что-то произошло, когда я сделал резервную копию своего файла, который я просто добавил "_thedate" в конец имени. Затем сохраните как исходное имя.

Теперь я не могу избавиться от старого JS независимо от того, что, если я не изменю имя файла, которое я действительно не хочу делать, или добавьте script на страницу PHP, которая толпит его.

Кто-нибудь знает это решение?

4b9b3361

Ответ 1

Вы уверены, что вы связываетесь с одним и тем же файлом, а затем редактируете тот же файл?

В каком-то браузере вы можете использовать CTRL F5 для принудительного обновления.

Firebug также имеет вкладку net с "Отключить кеш браузера"

Обновление 2017:

Если вы используете отладчик Google Chrome, это то же самое, вы можете перейти в раздел "Сеть" и убедиться, что "Отключить кеш (в то время как DevTools открыт)" отмечен в настройках панели отладчика.

Кроме того, когда вы связываете файл JavaScript, используйте

<script src="my-js-file.js?v=1"></script>

или v=2 и т.д., когда вы определенно хотите обновить файл. Или вы можете перейти на консоль и сделать Date.now() и получить временную метку, например 1491313943549, и использовать

<script src="my-js-file.js?t=1491313943549"></script>

Некоторые инструменты построения сделают это автоматически для вас или могут быть настроены так, чтобы сделать что-то вроде:

<script src="main.742a4952.js"></script>

который, по сути, испортит кеш.

Обратите внимание, что при использовании v=2 или t=1491313943549 или main.742a4952.js у вас также есть то преимущество, что для ваших пользователей они определенно получат и новую версию.

Ответ 2

Как добавить в тег '? 2'?

<script src="a.js?2"></script>

Сервер должен возвращать тот же файл с или без "? 2", но браузер должен видеть его как другой файл и загружать. Вы можете просто изменить эту строку запроса всякий раз, когда файл будет изменен.

адаптирован из: http://blog.httpwatch.com/2007/12/10/two-simple-rules-for-http-caching/

Ответ 3

У меня была эта проблема раньше, это очень расстраивало, но я нашел работу. Введите полный адрес js файла (т.е. Yourhost.com/javascript.js) и загрузите его. Вероятно, вы увидите загрузку старой версии. Затем нажмите f5, чтобы обновить эту страницу, и вы увидите загрузку новой версии. Теперь файл js будет обновлен в вашем кеше, и код должен работать, как вы ожидаете.

Ответ 4

Я использую это решение. Использование firefox
1. с помощью веб-разработчика → Веб-консоль
2. Откройте файл java- script на новой вкладке. 3. Обновите новую вкладку, где вы увидите новый код.
4. Обновить исходную страницу
5. Вы должны увидеть ваши изменения.

Ответ 5

Переименуйте файл js на что-то еще временно. Это единственное, что сработало для меня.

Ответ 6

Лучший способ браузеров - добавить случайное число в путь к файлу js.

Пример в псевдокоде:

// generate a random number
int i = Random.Next();
echo "<script src='a.js?'" + i + "></script>";

Это гарантирует, что ваш браузер всегда перезагружает файл, потому что он считает его другим файлом из-за случайного числа в URL-адресе.

Сервер всегда будет возвращать файл и игнорировать то, что появляется после "?".

Ответ 7

У меня была эта проблема, и я решил ее в Chrome, просто отключив кэш: - нажмите F12; - перейти на вкладку Сеть; - Нажмите "Отключить кэш".

Ответ 8

Вы на 100% уверены, что ваш браузер даже загружает script? Перейдите на свою страницу в Firefox и используйте консоль в Firebug, чтобы проверить, загружен ли script или нет.

Ответ 9

У меня такая же проблема на некоторое время, и мне удается разобраться... И мое дело было в том, что у меня есть 2 javascript с тем же именем функции.

Ответ 10

Немного поздно для вечеринки, но если вы поместите это в свой html, он не позволит вашему веб-сайту обновлять кеш. Для загрузки сайта требуется немного больше времени, но для целей отладки мне это нравится. Из этого ответа: Как программно очистить кеш браузера?

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

Ответ 11

1. Очистить кэш браузера в инструментах разработчика браузера 2. Вкладка "Под сетью" - выбрать параметр "Отключить кэш" 3. Перезапустить браузер 4. Принудительно перезагрузить файл Js, команда + Shift + R в Mac Убедитесь, что новая война правильно развернута на стороне сервера.