Vue-cli项目部署到Nginx服务器的方法


Posted in Javascript onNovember 01, 2019

0. Nginx使用

以windows版为例,下载niginx压缩包并解压到任意目录,双击nginx.exe,在浏览器中访问http://localhost,如果出现Welcome to nginx!页面则说明成功。

nginx常用命令如下:

nginx -h  # 打开帮助
nginx -t  # 检查配置文件是否正确

# 以下命令均要先启动nginx才能执行
nginx -s stop # 停止
nginx -s quit # 退出
nginx -s reopen # 重新启动(注意不会重新读取配置文件)
nginx -s reload # 重新读取配置文件

1. 部署项目到Nginx根目录

对于vue-cli创建的项目,修改vue.config.js文件(位于项目根目录下,没有的话自行创建):

module.exports = {
 // 开发环境中使用的端口
 devServer: {
 port: 8001
 },
 // 取消生成map文件(map文件可以准确的输出是哪一行哪一列有错)
 productionSourceMap: false,
 // 开发环境和部署环境的路径
 publicPath: process.env.NODE_ENV === 'production'
 ? '/'
 : '/my/',
 configureWebpack: (config) => {
 // 增加 iview-loader
 config.module.rules[0].use.push({
  loader: 'iview-loader',
  options: {
  prefix: false
  }
 })
 // 在命令行使用 vue inspect > o.js 可以检查修改后的webpack配置文件
 }
}

在vue项目根目录中使用命令npm run build创建输出文件,将dist文件夹下的所有内容复制到nginx目录下的webapp/内(没有的话自行创建)。

修改nginx目录中的conf/nginx.conf文件,在 http -> server 节点中,修改location节的内容:

location / {
 root webapp;
 index index.html index.htm;
}

在nginx根目录使用命令nginx -s reload即可在浏览器中通过http://localhost访问项目。

2. 多个项目部署到Nginx

有时一个Nginx中放了好几个子项目,需要将不同的项目通过不同的路径来访问。

对于项目1而言,修改vue.config.js文件的publicPath:

publicPath: '/vue1/'

对于项目2而言,修改vue.config.js文件的publicPath:

publicPath: '/vue2/'

分别在vue项目根目录中使用命令npm run build创建输出文件,将dist文件夹下的所有内容复制到nginx目录下的webapp/vue1和webapp/vue2内(没有的话自行创建)。

修改nginx目录中的conf/nginx.conf文件,在 http -> server 节点中,修改location节的内容:

location /vue1 {
 root webapp;
 index index.html index.htm;
}

location /vue2 {
 root webapp;
 index index.html index.htm;
}

在nginx根目录使用命令nginx -s reload即可在浏览器中通过http://localhost/vue1、http://localhost/vue2访问项目1、项目2。

3. 端口代理

当前后端项目分别部署在同一台机器上时,由于无法使用相同的端口,故后端一般会将端口号设置成不同的值(例如8080),但是当前端向后端请求资源时还要加上端口号,未免显得麻烦,故利用可以nginx将前端的指定路径代理到后端的8080端口上。

在conf/nginx.conf文件中增加location:

location /api {
 proxy_pass http://localhost:8080/api;
}

这样,当前端访问/api路径时,实际上访问的是http://localhost:8080/api路径。

总结

以上所述是小编给大家介绍的Vue-cli项目部署到Nginx服务器的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
JQuery中Bind()事件用法分析
May 05 Javascript
Boostrap入门准备之border box
May 09 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
C#实现将一个字符转换为整数
Dec 12 Javascript
Vue实现按钮旋转和移动位置的实例代码
Aug 09 Javascript
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 #Javascript
浅析js实现网页截图的两种方式
Nov 01 #Javascript
javascript使用链接跨域下载图片
Nov 01 #Javascript
async/await让异步操作同步执行的方法详解
Nov 01 #Javascript
浅谈Three.js截图并下载的大坑
Nov 01 #Javascript
vue中使用vee-validator完成表单校验方案
Nov 01 #Javascript
解决vue的过渡动画无法正常实现问题
Oct 31 #Javascript
You might like
php foreach、while性能比较
2009/10/15 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
Python各种扩展名区别点整理
2020/02/27 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
Python图像读写方法对比
2020/11/16 Python
Python实现粒子群算法的示例
2021/02/14 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
super()与this()的区别
2016/01/17 面试题
linux面试题参考答案(11)
2012/05/01 面试题
幼儿园国庆节活动方案
2014/02/01 职场文书
优秀员工评优方案
2014/06/13 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
灵能百分百第三季什么时候来?
2022/03/15 日漫
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server