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 相关文章推荐
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
Feb 24 Javascript
Node.js中调用mysql存储过程示例
Dec 20 Javascript
JavaScript前补零操作实例
Mar 11 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
Oct 28 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
Apr 17 Javascript
浅谈时钟的生成(js手写简洁代码)
Aug 20 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
js返回顶部实例分享
Dec 21 Javascript
JavaScript比较同一天的时间大小实例代码
Feb 09 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 Javascript
浅谈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实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
python学习基础之循环import及import过程
2018/04/22 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
大学毕业生自荐书怎么写?
2014/01/06 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
个人委托书怎么写
2014/04/04 职场文书
班长演讲稿范文
2014/04/24 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL