You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

刷新浏览器时如何避免404错误?Angular13路由配置求助

Angular 13 配置开发服务器路由 fallback 到 index.html

Angular CLI 默认不会暴露 webpack.config.js,因为它把 webpack 配置封装在了内部工具链里。你不需要手动找这个文件,用下面两种方法就能实现需求:

方法一:直接修改 angular.json(最简单)

这是官方推荐的方式,不需要额外插件。找到项目根目录的 angular.json,修改对应的 serve 配置,添加 historyApiFallback: true:

"projects": {
  "你的项目名称": {
    "architect": {
      "serve": {
        "options": {
          "historyApiFallback": true,
          // 其他已有配置(比如 port、host)保持不变
        }
      }
    }
  }
}

这个配置会让开发服务器无论请求什么路径,都返回 index.html,完全满足前端路由接管的需求。同时确保你的路由模块是用 RouterModule.forRoot(routes)(默认就是这个,没开 hash 模式),这样前端路由就能正常解析路径。

方法二:自定义 webpack 配置(适合复杂场景)

如果除了路由 fallback,你还需要修改其他 webpack 配置,可以用 @angular-builders/custom-webpack 插件:

  1. 安装插件:
npm install @angular-builders/custom-webpack --save-dev
  1. 在项目根目录新建 webpack.config.js,添加以下内容:
module.exports = {
  devServer: {
    historyApiFallback: true
  }
};
  1. 修改 angular.json,替换 build 和 serve 的 builder,并指定自定义配置文件路径:
"projects": {
  "你的项目名称": {
    "architect": {
      "build": {
        "builder": "@angular-builders/custom-webpack:browser",
        "options": {
          "customWebpackConfig": {
            "path": "./webpack.config.js"
          },
          // 其他原有 build 配置保持不变
        }
      },
      "serve": {
        "builder": "@angular-builders/custom-webpack:dev-server",
        "options": {
          // 其他原有 serve 配置保持不变
        }
      }
    }
  }
}

改完之后重启开发服务器,配置就会生效。

内容的提问来源于stack exchange,提问作者mac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 18:05:16