У меня есть приложение, которое я создал с помощью create-реагировать на приложение, и я размещаю на хостинге Firebase.Все работает локально во время разработки, используя npm start
.
При развертывании в Firebase сайт загружается нормально и работает нормально.Но только первая страница загружается.
Как только я обновляю страницу, я получаю ошибки о недопустимом Javascript в моих JS-файлах, размещенных на Firebase.
Uncaught SyntaxError: Unexpected token <
При просмотре в инспекторе сети Chrome он сообщает, что JS-файлы были загружены из«Из кеша памяти» и просмотр ответа в инспекторе сетей показывает, что Chrome получает содержимое index.html, а не содержимое файла JS.
Повторный эксперимент в новом браузере показывает, что Chrome фактически получает JS при начальной загрузке страницы.
Похоже, что-то в кеше памяти работает неправильно.Похоже, что «пустой кэш и полная перезагрузка» не заставляют Chrome снова извлекать файлы - он все еще использует кэш памяти.
Несколько подробностей
Я использую хостинг Firebase в режиме SPA, где все пути **
перезаписываются в index.html.Несмотря на это, статика (JS, CSS, шрифты, изображения) загружается нормально, поэтому Firebase должен быть достаточно умен, чтобы справиться с этим.
Только файлы JS неправильно кэшируются.Например, файлы CSS загружаются нормально.
Также кажется, что другие статики находятся в кеше диска, тогда как файлы JS находятся в кеше памяти.
Если я повторно разверну новый код (таким образом меняя пути JS, чтобы избежать кеширования), сайт снова загружается правильно, а затем возникает та же проблема.