添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

webpack output is served from / 404s will fallback to /index.html

这个错误是Webpack Dev Server输出的,通常意味着Webpack Dev Server不能找到指定的文件或目录,因此将访问请求回退到/index.html。

这通常发生在使用Webpack打包单页应用程序(SPA)时。在SPA中,前端路由通常使用HTML5的history API来实现,这将导致URL地址栏中的URL与服务器端URL不匹配。

Webpack Dev Server默认只会查找指定目录下的文件,如果使用HTML5 history API来实现前端路由,当用户在浏览器中输入URL地址栏中的URL时,Webpack Dev Server将无法找到对应的文件,因此就会抛出这个错误。

为了解决这个问题,你需要在Webpack Dev Server中配置一个fallback路由,指定所有未匹配到的URL请求都回退到index.html文件上。可以使用 historyApiFallback 选项来实现这一点,配置如下:

devServer: {
  historyApiFallback: true

这样Webpack Dev Server就会将所有未匹配到的URL请求重定向到index.html文件上,这样就可以避免404错误了。

需要注意的是,如果你的SPA中还有其他路由,如/about、/contact等等,也需要将它们添加到Webpack Dev Server的fallback路由中,否则在这些路由下刷新页面时还会出现404错误。你可以使用如下配置来实现:

devServer: {
  historyApiFallback: {
    rewrites: [
      { from: /^\/$/, to: '/index.html' },
      { from: /^\/about$/, to: '/about.html' },
      { from: /^\/contact$/, to: '/contact.html' }

这样,Webpack Dev Server就会将所有未匹配到的URL请求重定向到index.html文件上,而/about和/contact路由则会被重定向到对应的HTML文件上。

  •