vue项目部署到nginx/tomcat服务器的实现


Posted in Javascript onAugust 26, 2019

开发完的vue项目,需要部署到Nginx/Tomcat服务器上运行,作为一个前端小白,刚接触vue不久,研究了一番,于是写下这篇文章,记录下来便于今后部署。

1.router(history)模式vue项目部署到nginx

1)修改router模式为history(默认为hash)

const router = new VueRouter({
 routes,
 mode: 'history'
});

对路由模式不清楚的小伙伴,可以看这篇vue-router路由模式详解

2)修改config/index.js,build下静态资源路径,完成后执行npm run build打包

vue项目部署到nginx/tomcat服务器的实现

3)修改nginx配置

server {
  listen    80;//代理端口
  server_name 192.168.0.152;//代理名称(域名、ip)
  #charset koi8-r;

  #access_log logs/host.access.log main;

  location / {
    root test; //项目存放的地址(当前服务器位置)
    index /index.html;            
    try_files $uri $uri/ @router; //一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,返回同一个 index.html 页面
  }
  location @router {
    rewrite ^.*$ /index.html last;
  }
}

运行结果:

vue项目部署到nginx/tomcat服务器的实现

2.vue项目部署到tomcat

1)项目上线,一般需要添加项目名,并且消去vue-router产生的#号,需要在router配置

const router = new VueRouter({
 routes,
 mode: 'history',
 base: '/test/'//项目名称 访问路由页面都需要加上这个,访问的根路径为http://ip:port/test
});

2)修改config/index.js,build下静态资源路径与base的取值一致

vue项目部署到nginx/tomcat服务器的实现

3)tomcat的配置

在tomcat的webapps新建文件夹,文件夹名称和上面配置的根路径一致,即为test,然后将打包生成的dist文件夹里面的文件复制到test下,并且新建文件WEB-INF/web.xml。

项目结构为:

vue项目部署到nginx/tomcat服务器的实现

WEB-INF目录下新增web.xml内容为:

//覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,返回同一个 index.html页面
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
           http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1" metadata-complete="true">
  <display-name>Router for Tomcat</display-name>
  <error-page>
    <error-code>404</error-code>
    <location>/index.html</location>
  </error-page>
</web-app>

详细了解可看vue官方文档后端配置HTML5 History 模式

4)重新启动tomcat

vue项目部署到nginx/tomcat服务器的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
vue-router的使用方法及含参数的配置方法
Nov 13 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 jQuery
关于layui导航栏不展示下拉列表的解决方法
Sep 25 Javascript
Vue中jsx不完全应用指南小结
Nov 01 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 04 Javascript
vue-router路由模式详解(小结)
Aug 26 #Javascript
vue+moment实现倒计时效果
Aug 26 #Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 #Javascript
Moment.js实现多个同时倒计时
Aug 26 #Javascript
vue获取验证码倒计时组件
Aug 26 #Javascript
seajs和requirejs模块化简单案例分析
Aug 26 #Javascript
JavaScript实现身份证验证代码实例
Aug 26 #Javascript
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
js时间日期格式化封装函数
2014/12/02 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
10个示例带你掌握python中的元组
2020/11/23 Python
python实现图片转字符画的完整代码
2021/02/21 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
银行职业规划书范文
2013/12/28 职场文书
设计专业自荐信
2014/06/19 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
硕士学位论文评语
2014/12/31 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
英文升职感谢信
2015/01/23 职场文书
单身申明具结书
2015/02/26 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
详解Vue router路由
2021/11/20 Vue.js