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. Atlas 读写分离 & Atlas + MHA 故障自动恢复

    目录 Atals 介绍 Atlas 主要功能 Atlas 相对于官方 MySQL-Proxy 的优势 Atlas 使用 Atlas 安装 Atlas 目录 Atlas 配置 Atlas 启动 Atla ...

  2. K8S(05)核心插件-ingress(服务暴露)控制器-traefik

    K8S核心插件-ingress(服务暴露)控制器-traefik 1 K8S两种服务暴露方法 前面通过coredns在k8s集群内部做了serviceNAME和serviceIP之间的自动映射,使得不 ...

  3. spring再学习之AOP事务

    spring中的事务 spring怎么操作事务的: 事务的转播行为: 事务代码转账操作如下: 接口: public interface AccountDao { //加钱 void addMoney( ...

  4. mybatis(二)全局配置mybatis-config.xml

    转载:https://www.cnblogs.com/wuzhenzhao/p/11092526.html 大部分时候,我们都是在Spring 里面去集成MyBatis.因为Spring 对MyBat ...

  5. MacOS微信逆向分析-Frida

    MacOS微信逆向分析-Frida 0.前言 PC下的微信二次开发相信大家都会了,那么本篇文章将带领大家使用Frida框架对Mac下微信来进行二次开发! PS:还有一种静态注入的方式也不错,但是考虑到 ...

  6. expo-cli & React Native

    expo-cli https://reactnative.dev/docs/environment-setup You will only need a recent version of Node. ...

  7. Object to Array

    Object to Array objectToArray(obj = {}, title = `标题`){ let datas = []; if(Object.keys(obj).length) { ...

  8. js generator和yield

    function co<T>(fn: () => Generator<any, any, any>): Promise<T> { const g: Gener ...

  9. Dart: 编码和解码各种存档和压缩格式

    path archive import 'dart:io'; import 'package:path/path.dart' as p; import 'package:path/path.dart' ...

  10. Java自学第2期——注释、数据类型、运算符、方法

    2.1.注释 注释用于说明某段代码的作用,某个类的用途,某个方法的功能,参数和返回值数据类型的意义等等: 注释非常非常非常重要,回顾代码时通过注释找回思路:团队沟通需要,让别人读懂你的代码,增加效率: ...