Vite项目Nginx子路径部署全攻略

 更新时间:2026年05月22日 10:09:44   作者:龚隽娅Percy  
本文介绍了解决Vite项目部署到Nginx路径后后后后页面空白、资源加载失败问题的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

你是否曾遇到Vite项目部署到Nginx子路径后页面空白、资源加载失败或路由刷新404的问题?本文将通过3步配置法+故障排除指南,彻底解决这些痛点。读完你将掌握:

  • Vite配置文件的关键参数设置
  • Nginx服务器的精确路由规则
  • 静态资源路径的自动适配方案
  • 404错误的终极解决办法

1. Vite项目配置(核心步骤)

1.1 设置base路径

打开项目根目录的vite.config.js文件,添加base配置项指定子路径名称:

export default defineConfig({
  base: '/vite-app/',  // 子路径名称,必须以/开头和结尾
  // 其他配置...
})

⚠️ 注意:base值必须与Nginx配置中的location路径完全一致。例如Nginx配置/app/,则此处必须设为/app/。

1.2 构建生产版本

执行构建命令生成优化后的静态文件:

npm run build  # 构建产物默认输出到dist目录

构建完成后,检查dist/index.html文件,确认所有资源引用路径已自动加上/vite-app/前缀。

2. Nginx服务器配置

2.1 基础配置模板

在Nginx配置文件(通常位于/etc/nginx/conf.d/目录)中添加以下配置:

server {
    listen 80;
    server_name yourdomain.com;  # 替换为你的域名

    # 子路径部署核心配置
    location /vite-app/ {
        alias /path/to/your/vite/dist/;  # 替换为实际dist目录绝对路径
        try_files $uri $uri/ /vite-app/index.html;  # 解决SPA路由刷新404问题
        
        # 缓存控制 - 静态资源长期缓存
        location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
            expires 30d;
            add_header Cache-Control "public, max-age=2592000";
        }
    }
}

2.2 配置说明

参数作用示例值
location /vite-app/匹配子路径请求/admin/或/portal/
alias指定静态文件目录/var/www/vite-app/dist/
try_files实现SPA路由重定向$uri $uri/ /vite-app/index.html

配置完成后,执行以下命令使配置生效:

nginx -t  # 测试配置是否有误
systemctl reload nginx  # 平滑重启Nginx

3. 部署验证与故障排除

3.1 基本访问测试

在浏览器中访问 http://yourdomain.com/vite-app/,验证:

  • 首页是否正常加载
  • 点击导航后URL是否显示为 /vite-app/about 格式
  • 刷新页面是否仍能正常显示

3.2 常见问题解决方案

问题1:静态资源404错误

原因:Vite构建的资源路径与Nginx配置不匹配
解决:检查vite.config.js中的base值是否与Nginx的location路径完全一致

问题2:路由刷新后404

原因:Nginx未配置SPA路由重定向
解决:确保try_files指令正确设置为 $uri $uri/ /vite-app/index.html

问题3:CSS/JS加载跨域

原因:Nginx未正确配置CORS头
解决:在location块中添加:

add_header Access-Control-Allow-Origin *;

4. 高级优化配置

4.1 启用Gzip压缩

在Nginx配置中添加压缩配置,减少传输体积:

gzip on;
gzip_types text/css application/javascript image/svg+xml;
gzip_min_length 1k;
gzip_comp_level 6;

4.2 配置HTTPS(推荐)

通过Let's Encrypt获取免费SSL证书后,配置HTTPS:

server {
    listen 443 ssl;
    server_name yourdomain.com;
    
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
    # 其他SSL配置...
    
    location /vite-app/ {
        # 同上配置...
    }
}

5. 部署架构参考

下图展示了Vite项目在Nginx子路径部署的完整架构:

总结与最佳实践

  1. 配置同步原则:始终保持Vite的base配置与Nginx的location路径完全一致
  2. 构建验证:每次修改配置后执行npm run build重新构建
  3. 缓存策略:对静态资源设置长期缓存,对HTML设置不缓存
  4. 版本控制:建议在子路径中包含版本号,如/vite-app/v2/,便于多版本共存

官方文档:docs/guide/static-deploy.md
配置示例:playground/backend-integration/vite.config.js

通过以上步骤,你的Vite项目将在Nginx子路径环境中稳定运行,同时具备优秀的性能和可维护性。

到此这篇关于Vite项目Nginx子路径部署全攻略的文章就介绍到这了,更多相关Vite Nginx子路径部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue页面使用js实现前端打印功能

    vue页面使用js实现前端打印功能

    这篇文章主要介绍了vue页面使用js实现前端打印功能,文中通过图文结合的方式给大家讲解的非常详细,对大家实现打印功能有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • vue第一次获取不到元素的解决方法记录

    vue第一次获取不到元素的解决方法记录

    Vue.js虽然说是数据驱动页面的,但是有时候我们也要获取dom对象进行一些操作。这篇文章主要给大家介绍了关于vue第一次获取不到元素的解决方法,需要的朋友可以参考下
    2021-06-06
  • 解决vue项目刷新后,导航菜单高亮显示的位置不对问题

    解决vue项目刷新后,导航菜单高亮显示的位置不对问题

    今天小编就为大家分享一篇解决vue项目刷新后,导航菜单高亮显示的位置不对问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Vue.js标签页组件使用方法详解

    Vue.js标签页组件使用方法详解

    这篇文章主要为大家详细介绍了Vue.js标签页组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一
    2019-10-10
  • vue 更改连接后台的api示例

    vue 更改连接后台的api示例

    今天小编就为大家分享一篇vue 更改连接后台的api示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 手写实现vue2下拉菜单dropdown组件实例

    手写实现vue2下拉菜单dropdown组件实例

    这篇文章主要为大家介绍了手写vue2下拉菜单dropdown组件实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 详解Vue的七种传值方式

    详解Vue的七种传值方式

    这篇文章主要介绍了Vue的七种传值方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • vuex如何在非组件中调用mutations方法

    vuex如何在非组件中调用mutations方法

    这篇文章主要介绍了vuex如何在非组件中调用mutations方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • VUE-Table上绑定Input通过render实现双向绑定数据的示例

    VUE-Table上绑定Input通过render实现双向绑定数据的示例

    今天小编就为大家分享一篇VUE-Table上绑定Input通过render实现双向绑定数据的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • vue.js指令和组件详细介绍及实例

    vue.js指令和组件详细介绍及实例

    这篇文章主要介绍了vue.js功能介绍 - 指令,组件详细介绍及实例,详细的介绍了指令和组件的用法,有兴趣的可以了解一下。
    2017-04-04

最新评论