Включить одностраничное приложение реагировать на горячую перезагрузку веб-пакета

У меня есть некоторые проблемы при настройке одностраничного приложения реакции с использованием маршрутизатора реакции с сервером webpackdevserver. Если я использую историю браузера, у веб-пакета возникают проблемы при вводе URL-адреса вложенного маршрута (например, / client / view). Эту проблему можно решить, добавив apiFallback, но горячая перезагрузка все еще имеет проблему. Он пытается загрузить файл hot-update.json из глубокого URL-адреса (/client/view/hot-update.json), который не существует и поэтому завершается неудачей, и перезагружает страницу. Как я могу сказать hotreload всегда загружать hot-update.json из базового URL (/)?

2 ответа

У меня была похожая проблема при использовании publicPath Кроме как '', который я решил, добавив запись прокси в devServer опции:

devServer: {
  // ... rest of options
  proxy: {
    '/myPublicPath/*': {
      target: 'http://localhost:8080/',
      pathRewrite: { '^/myPublicPath': '' },
  }
}

Кроме этого, убедитесь, что оба output.publicPath а также devServer.publicPath установлен и равен.

Надеюсь это поможет!

У меня была аналогичная проблема. Сервер разработки продолжал пытаться загрузить bundle.jsиз каталога относительно URL-адреса. Мой publicPathявляется '/', и, к сожалению, другой ответ не помог. Я решил проблему следующим образом:

        devServer: {   
    // ... other options 
    historyApiFallback: {
      rewrites: [
        { from: /^.*\/bundle\.js$/, to: '/bundle.js' },
      ]
    }
  }
Другие вопросы по тегам