Vue打包项目并部署到Linux服务器中的全过程

 更新时间:2026年02月10日 09:45:33   作者:gk_starring  
文章介绍了如何使用Vue进行项目打包,并部署到Linux服务器上,包括配置vue.config.js文件、创建config.js文件以更改请求地址、封装axios请求、打包命令、部署到服务器、配置nginx以及隐藏后台服务地址的方法

一、Vue打包

1、配置vue.config.js文件

将publicPath改为"./",否则会出现静态文件找不到,从而使index.html文件打开空白页的问题

2、创建config.js文件,并引入index.html中,

创建该文件主要使为了,在vue打包后,后端服务更改了地址,前端就不需要重新打包,只需要更改打包后的config.js文件的baseUrl(打包后dist文件夹中也会有config.js文件),就能更改请求地址

config.js文件的内容

var ipConfig = {
    baseUrl: 'http://192.168.1.xxx:xxx'   //后端请求地址
  }

将config.js引入到public 的 index.js中

3、在发起请求的地方使用config.js中的地址

比如我这里,将axios请求封装起来,每次请求都使用这个封装的axios

如果你没有封装请求,可以在每个请求地址前都加上window.ipConfig.baseUrl

如:window.ipConfig.baseUrl + “/user/login”

4、打包

使用命令:

npm run build

结果出先如下情况,则证明打包成功

5、打包后的文件结构如下

二、部署到服务器中(Linux)

1、将打包后的dist文件夹放到服务器的某个文件下

我这里是放到了 /opt/Workspace/test_web

所以dist文件夹的路径为/opt/Workspace/test_web/dist,(记住这个路径,等下配置ngnix需要)

如果你不知道你的dist文件夹的路径在哪,你可以使用pwd命令

2、配置ngnix(请先确保你的服务器已经下载了ngnix)

打开ngnix配置文件,写入

 server {
        listen       8099;    //端口,别人通过什么端口来访问你的前端页面
        server_name  localhost;  //填localhost就行,服务的ip
        root   /opt/Workspace/test_web/dist/;  #vue文件dist的完整路径 
        sendfile        on;
	    tcp_nopush      on;
	    default_type text/html;
	    location / {
			index  /index.html;
			try_files $uri $uri/ /index.html;
         }
	
		error_page   500 502 503 504  /50x.html;
		location = /50x.html {
			root   html;
		}
    }

3、ngnix重新加载配置文件

退出写模式后,运行命令(否则该配置文件不生效)

ngnix reload

三、访问页面

接下来,就可以愉快的访问你的页面啦

地址 服务器地址+你在ngnix中设置的端口

四、更新

注意:如果你的后端没有使用到一个公共的路径,那么第四步(更新)可以不看 ,因为nginx无法配置

使用以上的方法部署前端页面有一个弊端,就是网站攻击者很容易知道你的服务器地址,即config.js中设置的baseUrl。

攻击者如果攻击你的页面,就只会导致某个用户的页面被黑,其他用户的页面还是使用正常的,只有一个用户受影响。或者是某台服务器上的页面被黑,其他服务器上的页面是正常的,只有某一部分用户受影响。

但是如果攻击者攻击你的服务器,那么,绝大多数乃至全部用户都会受影响,这种风险是很大的,所以,我们需要隐藏掉后台服务的地址。

1、更改config.js中的baseUrl,将http://192.168.1.xxx:xxx更改为后端api的公共路径,例如:

  • 登录接口:/base/login
  • 注册接口:/base/register

那么 这个baseUrl就为 /base,后面你访问后端,就只需要使用/login,/register就行,如果后端更改公共路径,你也可以直接在config.js上修改,就不需要每个api都去改了

2、在nginx的配置文件中再加一段

location /base/{
     proxy_pass http://172.168.xxx.xxxx:xxxx/base/;# 如果没有公共路径,这一部将无法配置
     proxy_set_header Host $http_host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;  
     # 上面这三个属性是为了告诉后端,你前端使用的ip地址
}

然后就可以安全的发布啦

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue.js中前端如何处理从后端返回的Excel文件流详解

    Vue.js中前端如何处理从后端返回的Excel文件流详解

    这篇文章主要介绍了如何在Vue项目中使用axios处理后端返回的Excel文件流,并提供下载功能,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2025-01-01
  • Vuex 进阶之模块化组织详解

    Vuex 进阶之模块化组织详解

    这篇文章主要介绍了Vuex 进阶之模块化组织详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • vue实现翻牌动画

    vue实现翻牌动画

    这篇文章主要为大家详细介绍了vue实现翻牌动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue中 数字相加为字串转化为数值的例子

    vue中 数字相加为字串转化为数值的例子

    今天小编就为大家分享一篇vue中 数字相加为字串转化为数值的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 详解如何理解vue的key属性

    详解如何理解vue的key属性

    这篇文章主要介绍了详解如何理解vue的key属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Vue大文件分片上传组件实现解析及关键代码

    Vue大文件分片上传组件实现解析及关键代码

    在开发中,如果上传的文件过大,可以考虑分片上传,分片就是说将文件拆分来进行上传,将各个文件的切片传递给后台,然后后台再进行合并,这篇文章主要介绍了Vue大文件分片上传组件实现解析及关键代码的相关资料,需要的朋友可以参考下
    2025-09-09
  • vue+element-ui实现主题切换功能

    vue+element-ui实现主题切换功能

    这篇文章主要介绍了vue+element-ui实现主题切换功能,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Vuejs 组件——props数据传递的实例代码

    Vuejs 组件——props数据传递的实例代码

    本篇文章主要介绍了Vuejs 组件——props数据传递的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 解决vue ui报错Couldn‘t parse bundle asset“C:\Users\Administrator\vue_project1\dist\js\about.js“. Analyzer

    解决vue ui报错Couldn‘t parse bundle asset“C:

    这篇文章主要介绍了解决vue ui报错Couldn‘t parse bundle asset“C:\Users\Administrator\vue_project1\dist\js\about.js“. Analyzer问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Vue3实现pdf预览功能

    Vue3实现pdf预览功能

    在开发中,PDF预览和交互功能是一个常见的需求,无论是管理系统、在线教育平台,还是企业内部的知识库,能够高效地展示和操作PDF文件都能极大地提升用户体验,本文将详细介绍如何在Vue项目中实现pdf预览功能,需要的朋友可以参考下
    2025-03-03

最新评论