Проблемы с кешем i18n json при использовании nginx - PullRequest
0 голосов
/ 15 февраля 2019

Я использую angular с переводами i18n в json-файлах, таких как de.json и en.json.В моей производственной среде (nginx) у меня проблема в том, что эти JSON-файлы кэшируются веб-браузером.После обновления Chrome не будет загружать новую версию текущего файла JSON, даже если заголовок даты изменился.

Запрос информации (Chrome):

  • Запрос URL: https://[my -сайт] /assets/i18n/de.json
  • Метод запроса: GET
  • Код состояния: 200 (из дискового кэша)
  • УдаленноАдрес: XXXX: 443
  • Политика реферера: no-referer-when-downgrade

Заголовки ответа:

  • кодировка содержимого: gzip
  • тип контента: application / json
  • дата: пт, 15 февраля 2019 09:04:42 GMT
  • etag: W / "5c62bf4d-2aea"
  • Последнее изменение: вторник, 12 февраля 2019 г., 12:42:53 GMT
  • сервер: nginx / 1.14.0 (Ubuntu)
  • статус: 304

Кто-нибудь имеет опыт решения этой проблемы и может мне помочь?

1 Ответ

0 голосов
/ 18 февраля 2019

Не совсем исправление для Angular / nginx, но я часто использую практику, чтобы добавить параметр строки запроса к ресурсу при его загрузке.Для меня это обычно происходит из номера версии файла / приложения .js, например, используя его в качестве начального числа для RNG

Так, вместо: <script src="/assets/de.json" />

используйте <script src="/assets/de.json?_=12345" />

Бонусные баллы - в своем приложении Angular вы можете отслеживать, какую версию активов вы хотите включить, что означает, что вы можете выпускать новые файлы активов, не заставляя клиентов немедленно обновлять их, если они у них есть.в локальном кеше (хотя учтите, что новые клиенты получат новую версию независимо)

...