Проблема в том, что, когда я их изменяю, браузер продолжает использовать старые скрипты, так как они сохранены в кэше.
Что сделать, чтобы скрипты обновлялись при их изменении? Могу придумать только изменение имени файла
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Ts.Saltan, уже б время запихнули. Не ручками ж менять каждый раз
Ts.Saltan
Отправлено: 25 Июня, 2015 - 16:06:15
Посетитель
Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013 Откуда: Belarus
Помог: 22 раз(а)
IllusionMH пишет:
Ts.Saltan, уже б время запихнули. Не ручками ж менять каждый раз
Если поставить метку времени - вообще кешироваться не будет.
Кеш это ж не плохо.
А изменение url даёт понять браузеру, что скрипты/стили уже не те.
Чтоб ручками всё не менять, поставить константу, и менять её значение.
ИМХО, самый оптимальный вариант - настроить сервер, чтоб работал с заголовками Modified, ETag и т.д.
IllusionMH
Отправлено: 25 Июня, 2015 - 16:23:35
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Ts.Saltan, самый оптимальный вариант спросить ТСа: ему для локальной разработки это мешает или для сервера, где пользователи сидят с закешированными скриптами. Арикус:
Локально - кеш убирать (варианты: обновление без кеша, дев тулы, время в гет параметре)
На серверах - зависит от сервера. Если все своё - можно и заголовками, если нет - способ инкрементить версию в гет параметре в зависимости от времени в каком-то конфиге.
nerv
Отправлено: 26 Июня, 2015 - 00:26:41
Посетитель
Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013 Откуда: Россия
Помог: 9 раз(а)
IllusionMH пишет:
если нет - способ инкрементить версию в гет параметре в зависимости от времени в каком-то конфиге
мы используем срез хеша последнего коммита
кстати, в когда последний раз смотрел в офф. доку гугла по кешированию, там черным по белому было написано не использовать query string для сброса кеша (или около того)
----- Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
IllusionMH
Отправлено: 26 Июня, 2015 - 02:52:35
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
nerv, с хэшом это круто! У нас туда версия.билд добавляется. Доступа к конфигам на проде никто не даст, чтобы настроить все нужные заголовки
Инвалидация кеша - одна из двух главных проблем и сильно зависит от браузера. Доку не читал, но в ближайшее может и придется разорбраться в деталях
Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013 Откуда: Россия
Помог: 9 раз(а)
IllusionMH пишет:
с хэшом это круто!
скорее очевидно Было предложено мной)
1. надоело в конфиге руками менять (о чем постоянно забываешь)
2. не люблю помнить всякие ненужные вещи, стараюсь автоматизировать
Ниже копипаста из нашей базы знаний
---
Определение версии проекта (получение последнего хеша)
# C помощью команды гита
```
git rev-parse HEAD
```
у меня еще проблемы были:
1. при использовании ангуляра - аякс подгрузка шаблонов (html), кот. кешил браузер
2. слишком много файлов скриптов
решил используя сборщик (шаблон инклюдиться в модуль)
например, в этом проекте собирается модуль, делается UMD, минифицируется, генерятся карты исходного кода
----- Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
IllusionMH
Отправлено: 26 Июня, 2015 - 15:56:24
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
nerv, я понимаю что хэш получить проблем не составляет, но у нас без изменения версии в конфиге невозможно собрать релиз (бэкэнд и фронтэнд). Такое полиси для проектов, так что его и использовали когда стартовали.
В релизах все собирается через r.js в пару файлов и используется версия в параметре(в основном шаблоне подставляется), на локалке require-js все нормально тащит сам.
В интернетах натывкался на такую цитату.
Цитата:
В программировании существует лишь два характерных затруднения: инвалидация кеша, наименование сущностей и ошибка на единицу
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.