vue下使用nginx刷新页面404的问题解决

部署问题

问题为:由于项目中使用的vue router 项目直接使用node环境部署项目,在同一个路由如: 192.168.11.30:/home刷新浏览器正常 nginx部署刷新不出现404 /nginx not found 如何解决?

出现原因

当使用前端路由时,如果是直接访问特定路径,例如 http://baidu.com/home,浏览器中的前端路由会正确解析这个路径并显示对应的页面,因为JavaScript路由库知道如何处理它。然而,如果你刷新页面,或者直接在地址栏中输入URL,服务器会尝试查找与该路径匹配的实际文件,但在SPA中,通常没有与每个路由路径相对应的独立HTML文件,因此服务器会返回404错误

解决方案

解决这个问题,需要修改配置Nginx,以便对所有请求都返回应用的入口点(通常是 index.html)。这样,不管浏览器中的路径是什么,服务器都会返回相同的index.html。一旦浏览器加载了这个HTML文件,前端路由库会根据URL来呈现正确的页面内容.

它解决了前端路由在SPA中的刷新问题,让SPA应用可以在不同的路由之间无缝导航

问题解决

当使用Vue Router时,前端路由是在客户端进行处理的,而Nginx作为反向代理服务器默认只处理静态文件的请求 这就是为什么直接访问 xxx.xxx.xxx.xxx:/home 时正常工作,但刷新页面时会出现404错误的原因。

使用通配符来配置Nginx,以使其将所有路由请求都指向Vue应用的 index.html,确保所有的路由请求都交给Vue Router处理

server {
    listen       80;
    server_name  demo;
    
    location / {
        
        # 配置让Vue Router处理路由
        try_files $uri $uri/ /index.html; 
    }
}


  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值