renren-fast部署发布教程(tomcat)

说明:renren的开发文档需要付费,官方的生产部署介绍相对比较简单,因此记录自己的部署过程

为了方便,前后端我都部署在同一台linux服务器上,其中前端使用tomcat部署

后端部分

  • 后端就是打成jar包,这部分只要能在开发环境跑起来,maven install一下就可以了,一般不会有问题

打包后再服务器上运行,如下:

java -jar renren-fast.jar --spring.profiles.active=test		#这里以测试服务器为例

记得提前修改好application.yml文件

执行命令后浏览器打开http://ip:port/renren-fast/swagger/index.html

前端部分

  • 关于前端,官方推荐是部署在nginx的,这里为了方便我是部署在tomcat上的
  1. 在打包前准备:

    • 修改/config/index.js中assetsPublicPath,dev和build两部分都修改,否侧部署tomcat打开页面会是白屏,如下:

    • 修改/src/router/index.js,如下:

      const router = new Router({
      base: '/Test/', //**在tomcat的webapps文件夹下新建同名目录,打包后文件放置其中
      mode: 'history', //**hash修改为history后,可去除url上的#号
      scrollBehavior: () => ({ y: 0 }),
      isAddDynamicMenuRoutes: false, // 是否已经添加动态(菜单)路由
      routes: globalRoutes.concat(mainRoutes)
      })
  2. 进入renren-fast-vue目录,命令行执行npm run build进行打包,其中很可能会遇到以下问题

    • 问题:

      fs.js:35 } = primordials;
      ^
      ReferenceError: primordials is not defined

      这个问题gulp版本导致的,可以查看package.json,发现gulp版本是3.9.1,我们的node是12,版本不匹配引起的报错,详细参考:https://github.com/gulpjs/gulp/issues/2324

    • 解决方法:

      网上的解决方法主要是升级gulp版本到4以上,或node回退到10版本,其实还有不用升级或回退的方法:

      在renren-fast-vue目录,新建npm-shrinkwrap.json文件,输入以下内容:

      {
      "dependencies": {
      "graceful-fs": {
      "version": "4.2.2"
      }
      }
      }

      随后,执行以下命令:

      npm install	#再次安装依赖
      npm run build #打包

      此时我们发现没有报错了,可以正常打包,此方法亲测有效

      详细解决方案参考这里:https://stackoverflow.com/questions/55921442/how-to-fix-referenceerror-primordials-is-not-defined-in-node

    • 打包完成后,我们可以在./dist目录查看

将这三项内容放置到tomcat的/webapps/Test下,启动tomcat即可

至此我们就成功将前后端打包在服务器上部署了,可以使用浏览器访问

renren-fast部署发布教程(tomcat)的更多相关文章

  1. Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器

    solr 基本介绍 Apache Solr (读音: SOLer) 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache ...

  2. maven自动部署到远程tomcat教程

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...

  3. Tomcat部署发布JSP应用程序的三种方法 (转)

    Tomcat部署发布JSP应用程序的三种方法     1.直接放到Webapps目录下      Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...

  4. Visual Studio 2017 系统发布部署服务器教程

    Visual Studio 2017 系统发布部署服务器教程       一.公司网站部署 --- 第一档 _Visual Studio 2017 发布网站系统教程  二.公司网站部署 --- 第二档 ...

  5. GeoServer基础教程(三):部署发布Shapefile地图数据

    转载:http://blog.csdn.net/mingzai624. 这是GeoServer官方网站提供的一份Shapefile测试数据 nyc_roads.zip ,包含了部分纽约的道路信息,我们 ...

  6. Idea+maven+tomcat部署第一个tomcat项目

    IDEA创建Maven项目及部署发布,IDEA配置Tomcat,创建java源文件夹. 此教程适合刚刚使用IDEA的新手. 工具/原料   IntelliJ IDEA 2016.3.4 apache- ...

  7. springboot项目部署到独立tomcat的爬坑集锦

    目录 集锦一:普通的springboot项目直接部署jar包 集锦二:springboot项目不能直接打war包部署 集锦三:因为tomcat版本问题导致的lombok插件报错:Invalid byt ...

  8. Solr 4.0 部署实例教程

    Solr 4.0 部署实例教程 Solr 4.0的入门基础教程,先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为H ...

  9. 【转】MyEclipse开发Web项目发布到Tomcat下的Root目录

    通常情况下,Web项目是发布到Tomcat下的webapps文件目录下的 .以至于我们访问的时候: 例如:Web应用项目名称为:webManager,则部署到tomcat后,是部署在tomcat/we ...

随机推荐

  1. GO - go mod使用原理

    Go Module 依赖管理 go mod使用 原理及使用ref: https://xuanwo.io/2019/05/27/go-modules/ go module的稳定路径: https://l ...

  2. 一个http请求的完整详细过程

    整个流程 域名解析: 与服务器建立连接:tcp连接: 发起HTTP请求: 服务器响应HTTP请求,浏览器得到html代码: 浏览器解析html代码,并请求html代码中的资源(如js.css.图片): ...

  3. redis字符串-sds

    redis自己实现了一种名为简单动态字符串的抽象类型(simple dynamic string)作为字符串的表示.下面将简单介绍sds的实现原理. 一.sds的结构

  4. range()函数的使用、while循环、for-in循环等

    一.range()函数 用于直接生成一个整数序列 创建range对象的三种方式: (1)range(stop)    创建一个(0,stop)之间的整数序列,步长为1 (2)range(start,s ...

  5. Dapr 正式发布1.0

    年前我写了一篇博客<Dapr 已在塔架就位 将发射新一代微服务>, 今天Dapr 正式发布了1.0 : Dapr Runtime v1.0.0 Dapr dotnet SDK v1.0.0 ...

  6. Apple Watch Series 6 编织表带如何清洗

    Apple Watch Series 6 编织表带如何清洗 如何清洁 Apple Watch https://support.apple.com/zh-cn/HT204522 refs xgqfrms ...

  7. React Portal All In One

    React Portal All In One react multi root https://reactjs.org/docs/portals.html https://zh-hans.react ...

  8. 项目管理工具看板 All In One

    项目管理工具看板 All In One Trello https://trello.com/ 我们来总结一下 Trello 是 Atlassian 旗下公司,所有使用 Trello 的人都将使用 At ...

  9. what's the print number means after called the setTimeout function in Chrome console?

    what's the print number means after called the setTimeout function in Chrome console? javascript fun ...

  10. flutter web in action

    flutter web in action flutter for web https://flutter.dev/web https://flutter.dev/docs/get-started/w ...