Последние несколько дней я застрял в кеширующем аде, и пока я начинаю понимать, что он все еще испытывает некоторые трудности.
Желаемый результат
Я хочу включить файл JS на сайт и кэшировать его и / или получать только новую копию файла, когда файл был изменен на сервере. Я НЕ МОГУ использовать теги версии или хэши в имени файла. Имя файла должно оставаться согласованным.
Где я нахожусь
Из того, что я понимаю после прочтения этого, использование Etags является идеальным решением для этого. Они будут обновляться при изменении файла и отправлять новую версию файла, если теги не совпадают. И это, кажется, работает, когда я запрашиваю файл через браузер
Итак, вы можете видеть, что при первом запросе я получаю 200, а размер загружаемого файла равен 292 B, а при втором запросе, потому что теги совпадают, я получаю 304, а размер загружаемого файла - 137 B (я полагаю, размер заголовка). Большой! Это именно то, что я хочу.
Мой заголовок запроса с поиском этаг:
Моя проблема
Теперь это работает, когда я запрашиваю файл из браузера, но добавление js-файла в тег скрипта не отправляет заголовки запроса таким же образом. Итак, открыв следующий HTML-файл
<!DOCTYPE html>
<html>
<body>
<script src="https://myTestSite.com/testCache.js">
</script>
</body>
</html>
Мой js-файл выбирается каждый раз, поскольку отсутствует заголовок запроса if-none-match
. Как мне воспроизвести поведение, которое наблюдалось в приведенном выше сценарии при использовании тега html script?
TL; DR
Как использовать Etags для запроса только измененных файлов JS при использовании тегов html-сценария, а не простого запроса GET браузера?