热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue项目部署到服务器通过公网IP访问

Vue项目部署到服务器通过公网IP访问-一、vue项目打包1.打包项目及修改文件​在本地的项目完成后,可能需要将其部署到服务器上,并且通过公网IP就可以访问到这个项目,下面

一、vue项目打包

1.打包项目及修改文件

​ 在本地的项目完成后,可能需要将其部署到服务器上,并且通过公网IP就可以访问到这个项目,下面介绍一下具体的部署流程。

​ 首先将写好的vue项目打包,在vue项目的当前目录下面运行npm run build,运行完成后,就可以发现项目中多了一个dist的文件夹,这是打包好的文件,可以用来直接运行。文件夹项目包含一个static和index.html文件,static文件下包含的是所有的源代码和数据,index.html是可以直接在本地运行的网页文件。

​ 在运行前先要改几个地方,才能够成功运行出来。在没有打包之前先打开config文件夹下面的index.js文件,修改如下图所示的dev和build对象中的assetsPublicPath属性,本来是'/',现在改为'./'。完成后保存再进行打包操作(npm run build)。

​ 打包完成后打开dist文件夹下面的index.html文件,把代码的路径改为和下图红色框中一样的路径。本来是'/',现在改为'./',一共四个地方,改好之后保存。然后运行这个HTML文件就可以在本地浏览器中看到主叫的项目了,如果能够成功运行,说明打包成功。

2.加载背景图片

​ 如果项目中有背景图片的话,如果按照上述操作,就不会显示出来。那么如何把背景图片也加载出来呢。打开build文件下面的utils.js文件,在如图所示的代码位置添加 publicPath: '../../',这一行代码,就可以解决背景图片加载不出来的问题。

二、服务器配置环境

​ 上面vue项目配置完成后,先不用着急,把服务器上面的环境配置好才能运行。我用的服务器是阿里云Ubuntu服务器,远程连接工具为xshell。

​ xshell怎么连接服务器就不具体讲了,需要的自行百度。连接到服务器后,接下来按照下面的几个步骤进行操作。

​ 1.安装node环境,因为vue项目依赖于node,所以的先把这个安装好。在xshell中输入

apt install npm

​ 安装完成后输入npm -v来检查是否安装成功,如果命令行打印npm的版本号,说明安装成功。npm是国外的,下载速度很慢,所以换成cnpm,下载东西快一点。运行命令

npm i -g cnpm

​ 这个下载速度可能很慢,需要等待一会时间,不要没有安装完就直接取消了。如果报错没有安装成功,再安装一次试试。安装完成后可以输入命令 cnpm -v 来查看是否安装成功。

​ 安装完node后可以在命令行输入node,测试服务器是否安装好node.js环境。如果出现一个箭头,就代表安装完成。退出的话直接运行两次Ctrl+c。

​ 2.安装完成后,就需要把打包好的文件传到服务器上面去。查看我之前的教程《阿里云服务器初始配置》,在第三步中(登录连接到服务器),按照这一步操作给服务器安装lrzsz,来进行命令式的文件传送。或者通过xshell的xftfp来进行文件传送。选择vue项目中的dist文件夹,传送到服务器的根目录下面。如果不能选择文件夹,把dist文件夹压缩一下,然后服务器用压缩命令解压就可以了。

​ 3.vue项目中一般都是8080端口,阿里云服务器默认不开放这个端口,还是看《阿里云服务器初始配置》,在第二步中如何开发端口。开放完8080端口后,在xshell中运行命令cnpm i -g serve安装serve模块,然后进入到刚刚的dist文件夹下面,运行命令serve -l 8080,就成功将vue项目部署到服务器上面了。

============ 2020-11-15 补充 ===============

最近想重新部署一个项目的时候,发现光从阿里云控制台打开端口还没有用,在那边打开端口可能只是开了一个外网可以访问的权限,如果服务器上面没有吧这个端口打开的话,也是没有用。可能之前阿里云就默认开了8080的端口。

现在想开放其他端口的话,还需要运行如下命令,把服务器上面的端口也打开。 以下的命令可以在centos上运行,也可以是Ubuntu

1、先查看一下防火墙已经开放了哪些端口
firewall-cmd --zOne=public --list-ports

2、如果没有自己想打开的端口,就把端口开启,比如下面就是开放8099这个端口
firewall-cmd --zOne=public --add-port=8099/tcp --permanent

3、使得上面配置立即生效
firewall-cmd --reload

4、如果想关闭当前这个端口
firewall-cmd --zOne=public --remove-port=8099/tcp --permanent

启动: systemctl start firewalld
查看状态: systemctl status firewalld 
禁用,禁止开机启动: systemctl disable firewalld
停止运行: systemctl stop firewalld

================================

​ 4.在浏览器中输入‘公网IP地址:端口(8080)’,就可以访问自己的项目了。注意不是xshell打印的地址,上面打印的地址为服务器的私网IP地址。

三、释放终端

​ 上面vue项目开启服务后会一直占用服务器的终端,如果想进行其他操作或者关闭xshell后,当前这个端口就会被关闭。如果想项目一直在服务器上面挂着,并且关闭xshell后或者估计后都可以访问到这个项目,那么进行如下的操作就可以解决这个问题。

​ 1.首先在命令行中cnpm i pm2 -g 来安装 PM2,然后确保服务器已经安装了vim和touch,一般都会有,不需要安装。在dist文件夹项目新建一个serve.sh文件,运行命令

touch serve.sh

​ 然后ls查看文件是否创建成功,创建成功后用vim打开,运行命令

vim serve.sh

先安装serve模块,否则可能获报错,造成其实服务已经起来了,但外网一直无法访问的情况出现。如果出错了可以通过pm2 logs来查看日志,看出现了什么错误。

npm install -g serve

​ 打开后在文件中写入

serve -l 8080

​ 在vim中的操作,i是插入,esc键是切换模式,:wq是保存并且退出,:q是退出。

​ 保存后退出vim编辑器。

​ 2.开启服务,运行命令。online代表在运行

pm2 start serve.sh

​ 3.如果想把这个服务停掉,运行命令

pm2 stop serve.sh

​ 至此vue项目部署到服务器上面就完成了,没有域名的就可以直接用公网IP地址:端口号的方式来访问了。


推荐阅读
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
author-avatar
没有结局的梦z最痛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有