Як вимкнути кешування на Firefox?


143

Під час розробки я весь час повинен "очищати кеш" у Firefox, щоб змусити його використовувати останню версію файлів JavaScript.

Чи є якесь налаштування (about: config), щоб повністю вимкнути кешування файлів JavaScript? Або, якщо ні, для всіх файлів?

Відповіді:


229

Введіть "about: config" в адресний рядок Firefox і встановіть:

browser.cache.disk.enable = false
browser.cache.memory.enable = false

Якщо ви розробляєте локально або використовуєте новий атрибут HTML5 маніфесту, можливо, вам доведеться також встановити наступне в about: config -

browser.cache.offline.enable = false

як я не знав про цю маленьку коштовність? Всілякі смаколики про: config!
ABrowne

2
network.http.use-cache не для мене. Зміна browser.cache.offline.enable не має для мене значення.
Кертіс

1
Я не сумніваюся, що це хороша відповідь, але це вже не здається правдою в останніх версіях Firefox (на даний момент я використовую версію розробника 47.0a2). Відключення кешування в налаштуваннях веб-розробника для мене ефективно.
JosephStyons

61

На панелі інструментів веб-розробників є можливість вимкнути кешування, що дозволяє дуже легко включати та вимикати, коли це потрібно.


1
CTRL-F5 або утримуючи клавішу Shift під час натискання кнопки "Перезавантажити" - це те, що я робив раніше, але функція "Відключити кеш" на панелі інструментів веб-розробників - це чудовий спосіб зробити це. Вам не доведеться повністю відключати кеш Firefox таким чином.
Джон Онстотт

1
Слід пам’ятати, що ввімкнути кеш після тестування. ;)
нейролабораторії

1
@Shanimal, Це працює для мене в 14.0.1, ви можете видалити / перевстановити чи щось.
Лукас

@Lucas doh! Елементи на сервері, з яким я працював, кешували, але я забув видалити свій коментар ... Дякую.
Shanimal

1
Це більше не працює, поки chrispederick не виправить кілька нових змін Firefox в останній версії. Я б пішов із рішенням about: config, яке краще для розробників.
Ligemer

12

Ви намагалися використовувати CTRL- F5для оновлення сторінки?


6
Я справді сумніваюся, що це працює надійно, принаймні за наявності кадрів і наборів кадрів.
Тіло

2
правильно, він не завжди буде перезавантажувати JS / CSS в iframe, але в Firefox ви можете принаймні вивести цей кадр на нову вкладку і перезавантажити його.
сканліфф

Я завжди використовував Ctrl-F5 .... тоді я виявив, що він не завантажуватиме мої новіші версії js-файлів, в яких я працював :( Був також в iframe (я знаю, iframe - це чорт, а не мій вибір ).
Громер

Ctrl-F5 не скидає кешування файлів javascript. що це робиться (в основному) - це очистити сеанс та файли cookie, але не кешований javascript та таблиці стилів
AceMark

10

Немає конкретної опції відключення кешування лише для JavaScript, вам доведеться повністю відключити кешування.

FireBug має можливість вимкнути кеш браузера у спадному меню вкладки Мережа.


8

На тій же сторінці, яку ви хочете відключити кешування, зробіть це: FYI: версія, над якою я працюю, становить 30.0

Ти можеш :

відкрити панель інструментів веб-розробників відкрити веб-розробник

і виберіть відключити кеш

Після цього вона буде перезавантажена сторінка з власної (ви ввімкнено), і кожна річ буде перероблена, і будь-який запит про крадіжку також буде повторно змінено кожен раз, і ви можете тримати веб-розробник завжди відкритим, щоб стежити і переконайтесь, що його завжди увімкнено (перевірити) .


8

Firefox 48 Інструменти для розробників

Дозволяє вимикати кеш-пам'ять лише тоді, коли відкрито панель інструментів, що ідеально підходить для веб-розробки:

  • F12
  • коробка передач в правому верхньому куті
  • прокрутіть вгору Додаткові настройки
  • встановіть прапорець "Вимкнути кеш (коли відкрито панель інструментів)"

введіть тут опис зображення

https://stackoverflow.com/a/27397425/895245 має подібний вміст, але з того часу позиціонування трохи змінилося.


1
Дякую ... там (і в цій темі) є інформація про встановлення network.http.use-cache на false ... але в моїй версії FF (53) цього налаштування більше не існує ... Ця техніка набагато перевершує все одно.
мійський гризун

7

Якщо ви працюєте з кодом на стороні сервера, ви можете створити випадкове число і додати його до кінця src наступним чином ....

src = "yourJavascriptFile.js? randomNumber = 434534"

при цьому кожен раз генерується випадковим числом.


Це єдине рішення, яке працювало для мене, окрім очищення кеш-пам’яті браузера вручну кожного разу, коли я оновлююсь.
Кертіс

4

Я знаю, що я піднімаю давнє питання, але я намагався вирішити цю проблему сьогодні і мав альтернативне рішення. Увімкнення кешування, коли я хочу тестувати, для мене було неприйнятним, і, як згадували інші, жорстке оновлення (ctrl + shift + r) не завжди працює.

Натомість я вирішив помістити у свій файл vhost.conf (що також можна зробити у .htaccess) у моєму середовищі розробників:

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

У моєму середовищі розробників це гарантує, що js та css завжди будуть завантажені. Крім того, це не впливає на решту мого перегляду, і він також працює для всіх браузерів, тому тестування на хром / тобто тощо також легко.

Тут знайдено фрагмент, а також деякі інші зручні трюки з апашами: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

Щоб переконатися, що мої клієнти завжди бачать останню версію на виробництві, ми збільшуємо рядок запитів на js, що включається в кожне оновлення, тобто

jquery.somefile.js?v=0.5

Це змушує браузери моїх клієнтів оновлювати свій локальний кеш, коли вони бачать нову рядок запитів, але потім кешують нову копію, поки файл знову не оновиться


3

Найкраща стратегія - це створити свій веб-сайт для створення унікальної URL-адреси для ваших файлів JS, яка скидається щоразу, коли відбувається зміна. Таким чином він кешується, коли не було змін, але негайно перезавантажується, коли відбувається будь-яка зміна.

Вам потрібно буде налаштувати під конкретні інструменти середовища, але якщо ви використовуєте PHP / Apache, ось чудове рішення як для вас, так і для кінцевих користувачів.

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/


3

Ви можете використовувати CTRL- F5для перезавантаження, минаючи кеш.

Ви можете встановити налаштування в Firefox не використовувати кеш

network.http.use-cache = false

Ви можете налаштувати веб-сервер, щоб надсилати заголовки без кешу / Expires / Cache-Control для файлів js.

Ось приклад веб-сервера apache.


це shift-f5 чи ctrl-f5?
Тіло

3

Якщо ви використовуєте FireBug, у випадаючому меню вкладки «Мережа» є можливість заборонити кеш браузера.

введіть тут опис зображення


Пожежу припинено.
K7AAY

1

Є два плюси і мінуси останніх двох опублікованих рішень, але вони обидва чудових рішення ІМХО.

  1. Ви можете або не хочете, щоб ваш ідентифікатор сеансу був вбудований у вашу URL-адресу, наприклад, для більш жорсткої безпеки. Але в розвитку це не має значення, але що робити, якщо ви забудете його видалити? Також це справді працює? Вам не знадобиться щось на кшталт генератора послідовних чисел (кількість звернень, що зберігаються в сеансі, а може бути, навіть якщо 1, то 0, якщо 0, то 1)?

  2. Додавання ідентифікатора сеансу (або будь-якого послідовника) означає, що вам потрібно пам’ятати, щоб додати його до кожного ресурсу, який ви не хочете кешувати. З одного боку, це краще, тому що ви можете просто включити свій ідентифікатор сеансу лише з того ресурсу, який ви активно розробляєте та тестуєте. З іншого боку, це означає, що ви повинні це зробити, і ви повинні пам'ятати, щоб зняти це для виробництва.

  3. Змінення vhost.conf або .htaccess-файлу добре справляється без необхідності пам’ятати про додавання та видалення ідентифікатора сеансу. Але недоліком є ​​продуктивність усіх js та css-ресурсів, і якщо у вас є великі файли, це сповільнить вас.

Обидва здаються чудовими, витонченими рішеннями - залежить від ваших потреб.


1

Я використовую CTRL- SHIFT- DELETEяка активує функцію конфіденційності, дозволяючи очистити кеш, скинути файли cookie тощо, і все. Ви навіть можете налаштувати його так, щоб він просто робив це, замість того, щоб вискакувати діалогове вікно з проханням підтвердити.


1

У більш високих версіях Firefox, як Nightly, є параметри з назвою "відключити кеш", ви можете знайти його, натиснувши на шестерню. І ця опція працює лише в поточному сеансі, а це означає, що коли ви закриєте інспектор і перезавантажите його, вам доведеться перевірити його ще раз, якщо ви хочете вимкнути вилов.


Я хотів би, щоб був спосіб відключити кеш в усьому світі. Дуже прикро потрібно перевіряти це кожного разу, коли я відкриваю інспектора.
Карлос Гарсія

0

Після 2 годин перегляду різних альтернатив, це те, що працювало для мене.

Моєю вимогою було відключення кешування файлів js та css у моєму весняному захищеному веб-додатку. Але в той же час кешування цих файлів "в межах" певного сеансу.

Передача унікального ідентифікатора з кожним запитом - це один із рекомендованих підходів.

І ось що я зробив: - Замість цього

<script language="javascript" src="js/home.js"></script>

я використав

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>

Будь-які мінуси вищезазначеного підходу вітаються. Питання безпеки?


0

У Firefox 45 параметри кеш-диска можна встановити, змінивши значення: browser.cache.disk.enable

Значення можна встановити на сторінці "about: config".

На http://kb.mozillazine.org/ About:config_entries# Browser я знайшов такий опис для "browser.cache.disk.enable":

Істинно (за замовчуванням): Використовуйте кеш диска, до ємності, визначеної в browser.cache.disk.capacity False: Вимкнути кеш диска (такий же ефект, що і встановлення browser.cache.disk.capacity на 0)


0

Перш за все, це легко зробити, наприклад, наприклад, за допомогою PHP, щоб змусити браузер оновлювати файли на основі дати кешу (термін придатності). Якщо вам це просто потрібно для експериментальних потреб, то спробуйте використовувати ctrl + shift + del, щоб очистити весь кеш одразу в браузері Firefox. Третє рішення - використовувати безліч доповнень, які виходять для Firefox, щоб очистити кеш на основі часових рядків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.