前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >部署Vue项目到服务器后404错误

部署Vue项目到服务器后404错误

作者头像
全栈若城
发布2024-10-13 07:53:30
920
发布2024-10-13 07:53:30
举报
文章被收录于专栏:若城技术专栏

一、Vue项目部署步骤

在前后端分离的开发模式下,前端项目独立部署通常涉及以下步骤:

构建项目:Vue项目构建后生成一系列静态文件。

上传文件:使用scp命令将构建好的文件上传至服务器的web容器指定静态目录。

代码语言:javascript
复制
scp dist.zip user@host:/xx/xx/xx

配置Web服务器:以Nginx为例,配置服务器以指向静态文件目录。

代码语言:javascript
复制
server {
  listen 80;
  server_name www.xxx.com;
  location / {
    index /data/dist/index.html;
  }
}

重启Nginx:检查配置并重启Nginx以应用更改。

代码语言:javascript
复制
nginx -t
nginx -s reload

访问域名:在浏览器输入域名以访问部署的应用。 以上是最直接的一种部署方式。更高级的部署方式,如自动化、镜像、容器和流水线部署,本质上是将此逻辑抽象和程序化,本文不展开讨论。

二、404错误原因及解决方案

错误场景
  • 问题描述:Vue项目在本地运行正常,但部署到服务器后刷新页面出现404错误。
  • 错误定位:HTTP 404错误表示请求的资源不存在。
原因分析
  • History模式问题:在Vue单页应用(SPA)中,所有用户交互通过动态重写当前页面实现。构建物只产出index.html,而nginx配置可能未涵盖所有路由。
  • Hash模式无问题:Hash模式不会将hash值包含在HTTP请求中,因此不会因hash变化重新加载页面,避免了404错误。
解决方案

修改Nginx配置:配置所有页面请求都重定向到index.html,交由前端路由处理。

代码语言:javascript
复制
server {
  listen 80;
  server_name www.xxx.com;
  location / {
    index /data/dist/index.html;
    try_files $uri $uri/ /index.html;
  }
}

修改后重启Nginx。

代码语言:javascript
复制
nginx -s reload

覆盖所有路由:在Vue应用中覆盖所有路由情况,并提供404页面。

代码语言:javascript
复制
const router = new VueRouter({
  mode: 'history',
  routes: [
    { path: '*', component: NotFoundComponent }
  ]
})

其他后端配置方案(如Apache、Node.js)的核心思想类似,本文不再详述。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Vue项目部署步骤
  • 二、404错误原因及解决方案
    • 错误场景
      • 原因分析
        • 解决方案
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档