用Nginx部署vue项目页面404解决

nginx是一款优秀的web反向代理服务软件。

将打包好的dist前端项目,基于nginx完成部署上线。


项目场景:

vue项目打包部署到nginx上面运行

打开nginx的主配置文件: nginx安装目录/conf/nginx.conf

将vueCLI打的项目包(dist目录)交给nginx服务来管理。使得访问某些路径时,可以指向dist/index.html。


问题描述

问题一:运行时页面白屏。

问题二:页面可以正常显示,当刷新页面的时候页面报404错误。


原因分析:
 

页面白屏分析:我们可以先查看一下nginx下的 logs/error.log 日志文件,确定我的问题是因为项目打包时候路劲配置问题。

页面404分析:我们在将 vue项目打包部署时,地址栏的地址只是 vue的路由,并不是真正的文件目录地址。所有的路由都是依赖于 SPA单页应用的index.html,所以当我们在刷新时,按照地址栏的地址,找不到对应的文件,就产生404。
 


解决方案

页面404解决:

配置nginx中conf目录下的nginx.conf文件,代码如下:

location / {
    # root定义网站根目录   html
    root   dist;
    # index定义网站的首页   html/index.html
    index  index.html index.htm;
    # 避免f5刷新后404
    try_files  $uri  $uri/  /index.html;
}

解释:当我们访问一个地址为 http://localhost:8056/dist/AssetChanges的时候先通过alias 确定路径 html/dist,然后通过try_files配置,首先会在html/dist下去找 $uri,也就是login这个文件,这个时候因为没有login文件,就会去找 $uri/ ,也就是 /login/ 这个文件目录,如果还是没找到,就会将其重定向到 @router,在定义的 @router 里,我们将其都指向 /dist 文件夹下的 index.html。这样就成功解决问题

如还不行,杀死进程,重启 

重启ngnix 
E:\nginx-1.23.4>nginx.exe  -s  reload

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用nginx部署vue项目时,刷新页面或访问路由配置页面时可能会出现404错误。这是因为vue项目属于单页面开发,只有一个index.html文件。解决这个问题很简单,只需要将访问重定向到index.html页面,然后由index.html处理对应的路由跳转。可以通过修改nginx的配置文件来实现。首先,在nginx的配置文件中添加以下代码: ``` location / { try_files $uri $uri/ /index.html; } ``` 这样就可以解决刷新页面时出现404错误的问题。然后,重启nginx服务器使配置生效。这样就完成了nginx部署vue项目解决刷新404的问题。\[1\]\[3\] #### 引用[.reference_title] - *1* [nginx部署vue项目,刷新页面404](https://blog.csdn.net/qq_45029459/article/details/129014641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Nginx部署Vue项目以及解决刷新页面404问题](https://blog.csdn.net/qq_27985607/article/details/86608392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [五步用Nginx部署Vue项目及动态路由刷新404问题解决](https://blog.csdn.net/weixin_54218079/article/details/125755795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值