Angular路由在Nginx中直接访问/刷新返回404问题求助
Angular路由刷新404问题解决方法
Angular属于单页应用(SPA),/login、/signup这类路由是前端路由,并非服务器上存在的真实目录或文件。Nginx默认会将这类请求当作对物理资源的访问,找不到对应资源时就返回404。
解决这个问题不需要修改Angular代码,只需调整Nginx的location /配置,让所有前端路由请求都指向项目的index.html,由Angular自身处理路由逻辑。
修改后的Nginx配置示例:
location / { root /html; index index.html index.htm; # 优先匹配真实文件/目录,匹配失败则返回index.html try_files $uri $uri/ /index.html; }
try_files指令的作用:
- 先尝试加载请求URI对应的物理文件
- 若文件不存在,尝试加载URI对应的目录
- 若两者都不存在,返回根目录下的
index.html,让Angular接管路由解析
内容的提问来源于stack exchange,提问作者Renan
相关产品推荐
相关产品推荐

