react自学(6) 部署到tomcat中

news/2024/9/19 8:53:50/ 标签: react.js, tomcat, javascript

1.设置项目名

在package.json文件配置

"homepage": "/myapp"

2.设置Router类型

说明:由于本文是写部署tomcat,因此使用HashRouter类型,不然会出现空白;如果使用springboot或在apche/nginx,则可以使用BrowserRouter。

    <HashRouter><div><Route path="/" exact render={(props) => (<></>)} /></div></HashRouter>

3.使用.env设置自定义的变量

在根目录下(src的同级),添加.env文件
如想设置变量ROOT_NAME=myapp
在.env中,自定义变量的名称,必须为REACT_APP_开头

REACT_APP_ROOT_NAME=myapp

4.在代码中获取变量

console.log(process.env.REACT_APP_ROOT_NAME)
console.log(process.env.PUBLIC_URL)

说明:获取第一步设置的项目名则使用process.env.REACT_APP_ROOT_NAMEprocess.env.PUBLIC_URL

5.多环境配置打包命令

环境变量文件命名规则:.env.[环境名称]
如:
本地环境配置文件:.env
开发环境配置文件:.env.development
生产环境配置文件:.env.production

{"scripts": {"build": "react-scripts build",// 本地环境"build-dev": "REACT_APP_ENV=development react-scripts build", // 开发环境"build-prod": "REACT_APP_ENV=production react-scripts build", // 生产环境}
}

对应执行打包命令:

npm run build
npm run build-dev
npm run build-prod

http://www.ppmy.cn/news/1521487.html

相关文章

从 ES|QL 到 Python 中的原生 Pandas 数据帧

作者&#xff1a;来自 Elastic Quentin Pradet 自 Elasticsearch 8.15 或 Elasticsearch Serverless 以来&#xff0c;ES|QL 响应支持 Apache Arrow 流式传输格式。这篇博文将向你展示如何在 Python 中利用它。在之前的一篇博文中&#xff0c;我演示了如何使用 CSV 作为中间表示…

win11环境android studio中AVD目录修改问题解决

起始原因是我搭建Android studio 调试一个app时&#xff0c;运行模拟器时 出现“The emulator process for AVD xxx has terminated.”的错误 DEBUG | trying to load skin file D:\android\skins\\pixel_6\layout ERROR | Not enough space to create userdata partition…

STM32 系列MCU 开发利器 STM32CubeIDE

前言 由于自己接触较多的 ARM 系列芯片主要是 STM32 系列的&#xff0c;接触过 STM32 F1、F4、L4、H7 等几个系列&#xff0c;使用的 开发工具&#xff0c;主要是 Keil MDK5、IAR&#xff0c;所以也比较关注开发工具的使用。 Keil MDK5、IAR 属于商用收费的功能强大的IDE&…

Ubuntu服务器时间和本地时间不一致怎么解决——Linux的Local Time和RTC time

最近一直在搞大模型的相关工作&#xff0c;所以一直在用Linux服务器&#xff0c;前面的文章里也提到了&#xff0c;我用的是一台Dell PowerEdge R730xd。 但在使用中发现&#xff0c;IDRAC中的日志时间和本地时间存在时差&#xff0c;大概相关8小时。 对于技术人员&#xff0c…

设计模式 - Singleton pattern 单例模式

文章目录 定义单例模式的实现构成构成UML图 单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现 总结其他设计模式文章&#xff1a;最后 定义 单例模式是一种创建型设计模式&#xff0c;它用来保证一个类只有一个实…

Unity中保存数据的方法

一、概述 Unity中可用于持久化的方式有&#xff1a; 1&#xff09;通过ScriptableObject在可编辑模式下保存数据 2&#xff09;通过excel、json等文件实现数据的可持久化 二、ScriptableObject的使用 1、使用背景 假如需要制作子弹预设体&#xff0c;每个子弹上有speed速…

ChatGPT付费创作系统V3.0.6独立版 WEB+H5+小程序端 (新增AI全网搜索+文档解析+豆包AI通道)安装部署教程

播播资源GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序&#xff0c;是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。这是一种基于人工智能技术的问答系统&#xff0c;可以实现智能回答用户提出的问题。相比传统的问答系统&#xff0c;ChatGPT可以更…

科研绘图系列:R语言宏基因组堆积图(stacked barplot)

介绍 宏基因组堆积条形图是一种数据可视化工具,用于展示宏基因组数据中不同分类群(如微生物群落中的物种或菌株)的相对丰度。宏基因组学(Metagenomics)是一种研究环境样本中所有生物的遗传物质(DNA和RNA)的科学,不依赖于培养,可以直接从环境样本中提取DNA进行测序。 …

软件测试-Selenium+python自动化测试

目录 会用到谷歌浏览器Chrome测试,需要下载一个Chromedriver(Chrome for Testing availability)对应自己的浏览器版本号选择。 一、元素定位 对html网页中的元素进行定位,同时进行部分操作。 1.1一个简单的模板 from selenium import webdriver from selenium.webdrive…

iOS——atomic、nonatomic、assign、_unsafe_unretain

atomic和nonatomic 在iOS开发中&#xff0c;当你定义一个属性时&#xff0c;编译器会自动为你生成一个带下划线的成员变量&#xff08;实例变量&#xff09;以及对应的getter和setter方法。如果你使用atomic修饰这个属性&#xff0c;那么编译器在生成setter和getter方法时&…

图欧科技-IMYAI智能助手24年8月更新日志大汇总(含史诗级更新)

IMYAI史诗级更新 图欧君最近行程排得满满当当 但请各位小伙伴放心 我们的更新步伐从未停歇 而这次我们IMYAI主站也迎来了史诗级升级 一起来看看这个8月 我们又新增了哪些功能和优化吧~ 8.26&#xff5c;更新日志 模型选择界面鼠标悬停左右按钮可以自动滚动&#xff08;手机端长…

【Linux 从基础到进阶】MongoDB 数据库安装与调优

MongoDB 数据库安装与调优 引言 MongoDB 是一个 NoSQL 类型的文档数据库,因其灵活的 JSON 格式存储、水平扩展能力和强大的查询功能而备受开发者青睐。在处理大规模数据时,MongoDB 提供了极高的性能和可扩展性。本文将介绍如何在 CentOS 和 Ubuntu 上安装 MongoDB,并进行必…

Camelyon16数据集切块批量预处理

参考自&#xff1a; Camelyon16数据集切块预处理 区别是这里做了批量处理 数据集目录格式&#xff1a; ** main.py** # !/usr/bin/python3 # -*- coding: utf-8 -*- # Time : 2024/9/4 20:21 # Author : 猫娜Lisa # File : camelyon16_get_patch.py # Software: PyC…

java 根据给定的子网掩码和网关计算起始IP和结束IP

java 根据给定的子网掩码和网关计算起始IP和结束IP 以下是一个Java工具类&#xff0c;用于根据给定的子网掩码和网关计算起始IP和结束IP。 import java.net.InetAddress; import java.net.UnknownHostException;public class IPUtils {public static void main(String[] args…

力扣-9. 回文数

文章目录 力扣题目代码工程方法1&#xff1a;方法2&#xff1a; 力扣题目 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数 是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左…

Linux基础网络编程-Socket通信

本文使用C语言&#xff0c;在Centos实现Socket两种通信类型(TCP和UDP) 文章目录 一、安装gcc二、使用TCP协议&#xff0c;实现Socket(SOCKE_STREAM)流式通信1. 编写TCP_server.c函数和参数解释 2.编写TCP_client.c函数和参数解释 3. 编译并运行上述两个文件3.1 编译3.2 运行(启…

MyBatis的动态SQL---组合条件查询与传递集合和数组(超详细)

MyBatis的动态SQL—组合条件查询与传递集合和数组&#xff08;超详细&#xff09; 文章目录 MyBatis的动态SQL---组合条件查询与传递集合和数组&#xff08;超详细&#xff09;一、 定义二、mybatis提供的几大标签1. if 标签2. choose、when和otherwise标签3. trim标签4. forea…

微信小程序垃圾回收的前景方向

在当今这个环保意识日渐增强的时代&#xff0c;如何有效处理日常生活产生的垃圾已成为亟待解决的社会问题。微信小程序凭借其便捷性和广泛的用户基础&#xff0c;在推广垃圾分类与回收方面展现出巨大潜力。作为一款集智能化分类指导、在线预约回收、环保知识普及于一体的微信小…

OSPFV3 华为

1 OSPFV3简介 (IPV6) 定义 OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2,针对IPv6协议使用OSPF Version 3。 OSPFv3是OSPF Version 3的简称。OSPFv3是运行于I…

opencv 实现两个图片的拼接去重功能

基础知识介绍 cv::Mat 是OpenCV库中用来表示图像和矩阵数据的核心类之一。它是一个多维数组&#xff0c;可以存储图像像素数据、矩阵数据以及其他类型的数据。以下是关于 cv::Mat 类的一些详细解释&#xff1a; 构造函数&#xff1a;cv::Mat 类有多个构造函数&#xff0c;可以用…