vue项目部署到服务器上刷新出现404以及白屏的问题

本文介绍了在部署Vue项目到阿里云服务器后,遇到刷新页面出现404错误的解决方案。提供了针对nginx和tomcat两种环境的解决策略,包括修改项目打包配置assetsPublicPath和配置服务器的web.xml或nginx配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:最近接触了一个vue的项目,打包之后部署到阿里云服务器上之后,点击连接一级一级进页面没有问题,但是刷新页面就出现404,找了两个解决方法,供大家一起学习。(本人模拟了在nginx和tomcat的解决方法)

1,项目打包的时候index.js修改assetsPublicPath: ‘/’
在这里插入图片描述
2.如果部署在tomcat上:在tomcat的webapps下的项目中创建WEB-INF文件夹,在文件夹中创建文件web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1" metadata-complete="true">
    <display-name>Router for Tomcat</display-name>
    <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>

3,如果部署在nginx上:修改nginx的配置文件,xx为项目存放的文件夹


                
<think>好的,用户想知道如何将Vue项目部署服务器的最佳实践。我之前已经处理过类似的问题,现在需要结合提供的引用信息来组织答案。首先,我需要确认用户的需求是明确的:他们需要一个步骤清晰的指南,涵盖构建、配置服务器、上传文件等关键步骤,可能还涉及常见问题的解决方案。 根据引用[1]、[2]、[4],用户提到的步骤包括构建项目、安装Nginx、配置服务器。引用[4]还提到了子目录部署和路由配置,这点很重要,可能需要详细说明。引用[3]和[5]提到了云服务器相关的设置,比如容灾演练和委托配置,但看起来这些可能不是用户当前主要需求,不过可能需要提到服务器权限和路径设置。 我需要确保步骤逻辑清晰,分步解释。例如,先构建项目生成dist目录,然后配置Nginx,处理可能的路由问题,比如History模式导致404,需要Nginx的配置。另外,引用[4]中提到的base路径设置对于子目录部署很关键,需要举例说明如何在vite或vue.config.js中配置。 可能还需要注意事项,比如服务器权限、防火墙设置,以及HTTPS配置,这些虽然引用中没有详细提到,但作为最佳实践应该包含。此外,常见问题白屏问题可能由路径错误引起,需要检查资源路径是否正确。 最后,生成相关问题,比如部署后出现404怎么办,如何优化性能,使用Docker部署等,这些能帮助用户进一步解决问题。需要确保问题相关且有用,覆盖用户可能遇到的后续疑问。</think>### 将Vue项目部署服务器的最佳实践 以下是基于Nginx部署的标准化流程,结合常见场景和问题解决方案: --- #### **一、部署前准备** 1. **本地项目构建** 运行 `npm run build` 生成 `dist` 目录(包含优化后的静态文件)[^4]。 ```bash npm install # 确保依赖完整 npm run build ``` 2. **服务器环境要求** - 安装Nginx并确保服务已启动[^1] ```bash sudo apt update && sudo apt install nginx -y sudo systemctl start nginx ``` - 开放HTTP/HTTPS端口(默认80/443)[^3] --- #### **二、部署步骤** 1. **上传文件到服务器** - 通过SCP/FTP工具将 `dist` 目录上传至服务器(如 `/var/www/vue-project`)[^5] ```bash scp -r dist/ user@server_ip:/var/www/vue-project ``` 2. **Nginx配置** - 编辑站点配置文件(如 `/etc/nginx/sites-available/vue-app`): ```nginx server { listen 80; server_name your_domain.com; root /var/www/vue-project; index index.html; location / { try_files $uri $uri/ /index.html; # 解决Vue路由History模式404问题[^4] } } ``` - 启用配置并重启Nginx: ```bash sudo ln -s /etc/nginx/sites-available/vue-app /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl restart nginx ``` --- #### **三、高级配置** 1. **子目录部署** 若需部署到子路径(如 `/demo`): - Vue项目配置: ```javascript // vite.config.js 或 vue.config.js export default defineConfig({ base: '/demo/' }) ``` - 路由同步调整: ```javascript const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes }) ``` - Nginx配置调整: ```nginx location /demo { alias /var/www/vue-project; try_files $uri $uri/ /demo/index.html; } ``` 2. **HTTPS配置** 使用Let's Encrypt免费证书: ```bash sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your_domain.com ``` --- #### **四、常见问题解决** | 问题现象 | 解决方案 | |------------------------|--------------------------------------------------------------------------| | 页面白屏 | 检查Nginx的`root`路径是否正确,确认资源文件权限为`755`[^3] | | 路由刷新404 | 确保Nginx配置包含`try_files $uri $uri/ /index.html;`[^4] | | 静态资源加载失败 | 检查`base`配置是否与部署路径一致,或使用绝对路径引用资源 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值