vue项目 摆设到nginx 上革新页面显示404

打印 上一主题 下一主题

主题 808|帖子 808|积分 2424

在Vue项目摆设到Nginx服务器上时,遇到革新页面显示404的问题,通常是因为Nginx无法精确地处理Vue路由(尤其是单页面应用(SPA)中的前端路由)。Vue应用的路由是前端路由,依赖于JavaScript来动态解析URL,当直接访问除根路径外的URL时,Nginx默认会尝试在服务器上找到对应的文件或目录,如果找不到就会返回404错误。
为相识决这个问题,你必要设置Nginx,使得全部请求都重定向到Vue应用的入口文件(通常是index.html),这样无论请求什么URL,Vue的路由都能精确处理。以下是一个基本的Nginx设置示例,用于解决这个问题:
  1. server {  
  2.     listen       80;  
  3.     server_name  yourdomain.com; # 替换为你的域名或IP  
  4.   
  5.     location / {  
  6.         root   /usr/share/nginx/html; # Vue应用打包后的文件存放的目录  
  7.         try_files $uri $uri/ /index.html; # 尝试找到请求的文件或目录,如果找不到,则返回index.html  
  8.     }  
  9.   
  10.     # 其他配置...  
  11.   
  12.     error_page   500 502 503 504  /50x.html;  
  13.     location = /50x.html {  
  14.         root   /usr/share/nginx/html;  
  15.     }  
  16. }
复制代码
这里的关键是try_files指令,它按照列出的次序检查文件是否存在,如果文件或目录不存在,则最后会返回/index.html。由于Vue应用是SPA,全部路由都应该在前端处理,因此返回index.html是合适的。
确保你的Vue应用已经通过npm run build(或雷同的下令)构建完成,而且全部的构建文件(包括index.html)都已经被放置在Nginx的root指令指定的目录中。
如果你正在利用Vue CLI 3或更高版本,而且利用vue-cli-service build来构建你的项目,它默认会生成一个dist/目录,你必要确保Nginx的root指令指向这个目录(或者将其内容复制到Nginx的默认目录)。
最后,不要忘记重启Nginx服务以使设置见效。你可以利用sudo systemctl restart nginx(对于利用systemd的系统)或其他相应的下令来重启Nginx。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表