【umi max】关于umi构建的项目在本地服务运行正常,但是部署时无致命报错却白屏,html文档的#root容器没有子元素的原因及解决办法
我们在部署时运维很可能会因为项目太多,进而放到不同的目录底下,例如project/H5-TEST-DEMO
(其中project是项目的存放目录,而H5-TEST-DEMO才是我们部署的项目根目录)于是乎就会出现我们在本地服务里调试得好好的,但是一打包部署就白屏。
分析下原因:
因为umi在非人工干预修改目录结构的情况下,路由是按照默认路由规则生成的,这其中就包括了默认生成html的规则,默认是src/pages其对应基础访问路径也会默认是/(PS:这个和publicPath不是同一个概念,publicPath是修改打包后存放静态资源的路径),此时我们将项目打包出dist,并且部署到H5-TEST-DEMO目录,会出现白屏,因此基础路径不再是/,而应该是/H5-TEST-DEMO/,因为内层套了一层目录H5-TEST-DEMO,因此需要追加path至完整路径。
PS:之所以#root容器没有被注入子元素,就是因为路由没匹配上,SPA的规则就是页面路由匹配再去加载对应页面的内容并注入到#root元素,此并非nginx的问题,如果Nginx出了问题,那么根路由是访问不进来的,也就查不了element元素
解决办法:

export default defineConfig({antd: {},base: '/H5-TEST-DEMO/', // 重点是改这个!!!// dva: {},model: {},initialState: {},request: {},locale: {default: 'zh-CN',baseSeparator: '-',useLocalStorage: true},favicons: ['/favicon.ico'],devtool: !isDevelopment() ? false : 'source-map',define: {APP_TYPE: process.env.APP_TYPE || '',ENV: process.env.ENV || '',PLATFORM: getPlatform(),'process.env.APP_ENV': process.env.APP_ENV,'process.env.APP_AREA': process.env.APP_AREA},theme: {'primary-color': '#5590F6','layout-footer-background': '#F8F9FD'},alias: {'@configs': './configs/'},routes,npmClient: 'yarn',links: [{ href: '//wx-h5-assets.oss-test.aliyuncs.com', rel: 'dns-prefetch' },],headScripts,scripts: [// {// src: 'https://wx-tech-test-buckets.oss-okk.aliyuncs.com/area.js',// defer: true// }],metas: [{name: 'viewport',content: 'width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover'}],codeSplitting: {jsStrategy: 'granularChunks'},esbuildMinifyIIFE: true,hash: true,targets: {safari: 13,chrome: 80},...(publicPath ? { publicPath } : {}),// presets: ['./plugin/print', './plugin/buildVersion'],// plugins: ['./plugin/watchFiles', './plugin/collectI18nKey', './plugin/modifyHtml', './plugin/modifyTSConfig'],// watchFiles: [LOCALES_SCRIPT_PATH],proxy: {'/api': {target: serverOrigin,changeOrigin: true}},...(process.env.DEAD_CODE? {deadCode: {patterns: ['src/**'],exclude: ['src/.umi.*/**', 'src/chat/**', 'src/wfc-util/**', 'src/**/*.md', 'src/**/*.mdx', 'src/**/*.d.ts', 'src/assets/oaicons/**'],detectUnusedFiles: true,detectUnusedExport: true}}: {}),jsMinifier: 'esbuild',jsMinifierOptions: {drop: isProduction() ? ['console', 'debugger'] : []},chainWebpack(config) {// @ts-ignoreconst cacheGroups = config.optimization.splitChunks.values().cacheGroups;if (cacheGroups) {// cacheGroups['tools'] = {// name: 'tools',// chunks: 'all',// test: /([\\/]node_modules[\\/](moment|rc-field-form[\\/]es|query-string)[\\/])|([\\/]src[\\/]wfc-util[\\/]libs[\\/]han[\\/])/,// priority: 51// };cacheGroups['antd'] = {name: 'antd',chunks: 'all',test: /[\\/]node_modules[\\/](antd|@ant-design[\\/]icons|ahooks)[\\/]/,priority: 50};}return config;}// mfsu: false
});
相关文章:
【umi max】关于umi构建的项目在本地服务运行正常,但是部署时无致命报错却白屏,html文档的#root容器没有子元素的原因及解决办法
我们在部署时运维很可能会因为项目太多,进而放到不同的目录底下,例如project/H5-TEST-DEMO (其中project是项目的存放目录,而H5-TEST-DEMO才是我们部署的项目根目录)于是乎就会出现我们在本地服务里调试得好好的&#…...
Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
本示例演示在vue+openlayers中实现轨迹动画,这里设置了小汽车开始,暂停,结束等的控制键,采用了线段步长位置获取坐标来定位点的方式来显示小车的动态。 效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文章,为小白群体提供基础知识及示例演示,能解决基…...
蓝牙MCU蓝牙医疗检测相关案例
英尚蓝牙MCU配套成熟的网络协议栈和丰富的示例代码及多平台APP工具。无需二次开发,即连即用;提供特色蓝牙/串口/USB三通芯片,为更多复杂无线应用赋能。相关产品及技术欢迎咨询。 应用案例说明: • 应用包括血糖仪,血氧仪,血压计,体温计,毒品…...
pytorch环境安装和更新,额外装cuda有什么意义
更新了一下设备和环境,看了眼其他教程,突然间发现都还让装cuda和cudnn。。。明明很早之前pytorch使用的和系统的cuda就已经脱钩了。 测试了一下不额外装也没发现什么问题,如果有谁知道装系统的cuda对pytorch有何意义,可以评论区告…...
【观成科技】APT组织常用开源和商业工具加密流量特征分析
概述 在当前的网络安全环境中,APT组织的活动愈发频繁,利用其高级技术和社会工程手段,针对全球范围内的政府、军事和企业目标发起了一系列复杂的网络攻击。在不断升级的攻击中,开源和商业工具凭借其灵活性、易用性和全球化攻击能力…...
Java开发者的Python快速进修指南:面向对象进阶
在上一期中,我们对Python中的对象声明进行了初步介绍。这一期,我们将深入探讨对象继承、组合以及多态这三个核心概念。不过,这里不打算赘述太多理论,因为我们都知道,Python与Java在这些方面的主要区别主要体现在语法上。例如,Python支持多重继承,这意味着一个类可以同时…...
【商汤科技-注册/登录安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...
诱骗取电快充协议芯片,支持与其它 MCU 共用 D+D-网络和电脑传输数据
前言 在科技日新月异的今天,快充技术已成为智能手机、平板电脑乃至笔记本电脑等电子设备不可或缺的一部分。各大厂商为了提升用户体验,纷纷推出了自家的快充协议,这些协议不仅让充电速度大幅提升,还带来了更加智能、安全的充电体验…...
Java Executor ScheduledExecutorService 源码
前言 相关系列 《Java & Executor & 目录》《Java & Executor & ScheduledExecutorService & 源码》《Java & Executor & ScheduledExecutorService & 总结》《Java & Executor & ScheduledExecutorService & 问题》 涉及内容 …...
【力扣 + 牛客 | SQL题 | 每日6题】牛客SQL热题 + 力扣hard
1. 牛客SQL热题206:获取每个部门中当前员工薪水最高的相关信息 1.1 题目: 描述 有一个员工表dept_emp简况如下: emp_nodept_nofrom_dateto_date10001d0011986-06-269999-01-0110002d0011996-08-039999-01-0110003d0021996-08-039999-01-01 有一个薪水…...
前端常见错误
搭建vueelement-ui脚手架错误 基于vue官方文档和element官方文档搭建手册报错 安装element Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist. types.js?8ad0:39 Uncaught TypeError: Cannot read property prototype of undefi…...
Edge 浏览器插件开发:图片切割插件
Edge 浏览器插件开发:图片切割插件 在图片处理领域,按比例切割图片是一个常见需求。本文将带你开发一个 Edge 浏览器插件,用于将用户上传的图片分割成 4 个部分并自动下载到本地。同时,本文介绍如何使用 cursor 辅助工具来更高效…...
银河麒麟v10 xrdp安装
为了解决科技被卡脖子的问题,国家正在大力推进软硬件系统的信创替代,对于一些平时对Linux操作系统不太熟练的用户来讲提出了更高的挑战和要求。本文以银河麒麟v10 24.03为例带领大家配置kylin v10的远程桌面。 最近公司为了配置信创开发新购了几台银河麒…...
Leetcode 删除有序数组中的重复项 Ⅱ
使用双指针来解决此问题,关键词“有序”数组,一个 index 指针用于构建新数组,一个 i 指针用于遍历整个数组 以下是代码的中文解释以及算法思想: 算法思想 这道题要求对一个有序数组进行去重,使得每个元素最多出现两…...
大模型学习笔记------什么是大模型
大模型学习笔记------什么是大模型 1、大模型定义2、大模型发展历程3、大模型的核心特点4、大模型的应用领域5、大模型面临的挑战6、结束语 近两年大模型超级火,并且相关产品迎来爆发式增长。在工作中,也常常接触到大模型,并且已经开始进行相…...
【unique_str 源码学习】
文章目录 1.删除器定义2. operator->() 运算符重载3. add_lvalue_reference<element_type>::type 使用 基本原理这篇博主写的很详细 https://yngzmiao.blog.csdn.net/article/details/105725663 1.删除器定义 deleter_…...
flask第一个应用
文章目录 安装一、编程第一步二、引入配置三、代码解析 安装 python环境安装的过程就不重复赘述了,flask安装使用命令pip install Flask即可,使用命令pip show Flask查看flask版本信息 提示:以下是本篇文章正文内容,下面案例可供…...
华为OD机试真题(Python/JS/C/C++)- 考点 - 细节
华为OD机试 2024E卷题库疯狂收录中,刷题 点这里。 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。...
【C++刷题】力扣-#628-三个数的最大乘积
题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 示例 1 输入:nums [1,2,3] 输出:6示例 2 输入:nums [1,2,3,4] 输出:24示例 3 输入:nums […...
Java项目实战II基于Java+Spring Boot+MySQL的工程教育认证的计算机课程管理平台(源码+数据库+文档)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着工程教…...
老显卡在Debian 12上重获新生:保姆级教程解决NVIDIA 390驱动安装与版本冲突
老显卡在Debian 12上的重生指南:NVIDIA 390驱动完整解决方案 当GeForce 600/700系列显卡遇上最新的Debian 12系统,就像让一位老将披上现代战甲——既充满情怀又颇具挑战。本文将带你穿越驱动安装的迷雾森林,从硬件识别到版本冲突解决…...
从手术室到移动端:iMedSTAM交互式视频分割模型实战,5分钟搭建你的低延迟医学分析原型
从手术室到移动端:iMedSTAM交互式视频分割模型实战,5分钟搭建你的低延迟医学分析原型 在腹腔镜手术中,外科医生常常需要在实时视频流中快速定位关键解剖结构。传统AI模型往往需要完整视频输入和离线处理,而iMedSTAM的"随时预…...
一些常见颜色汇总
1 1.1 CVPR2024:Koala序号示例RGBHEX1(244, 204, 204)#F4CCCC2(207, 226, 243)#CFE2F33(252, 229, 205)#FCE5CD序号示例RGBHEX1(217,217,217)#D9D9D92(252,229,205)#FCE5CD 2 2.1 AAAI2025:Stable Mean Teacher for Semi-supervised Video Action Detection序号示例…...
OpenClaw+gemma-3-12b-it内容助手:自动生成技术文章与排版
OpenClawgemma-3-12b-it内容助手:自动生成技术文章与排版 1. 为什么需要自动化内容生产线 作为技术自媒体创作者,我每周需要产出3-5篇深度技术文章。传统写作流程中,最耗时的不是核心内容创作,而是反复调整格式、插入代码块、优…...
WebDataset数据增强库:集成Albumentations与自定义变换的终极指南
WebDataset数据增强库:集成Albumentations与自定义变换的终极指南 【免费下载链接】webdataset A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch. 项目地址: https://gitcode.com/gh…...
B0505S-2WR3 适配优选 DB2-05S05LS,DC-DC 电源模块参数与场景深度解析
在工业控制、仪器仪表、通信接口等标准化电路设计中,2W 级 5V 转 5V 隔离 DC-DC 模块是高频应用的核心器件。DB2-05S05LS 和 B0505S-2WR3 作为该功率段的主流型号,在电气规格、物理规格与场景适配性上呈现高度契合,为硬件工程师的标准化选型提…...
城市峡谷里,你的车是怎么知道自己在哪的?聊聊INS、NHC和轮速计(ODO)的“组合拳”
城市峡谷里,你的车是怎么知道自己在哪的?聊聊INS、NHC和轮速计(ODO)的“组合拳” 想象一下,你正驾驶车辆穿梭在纽约曼哈顿的摩天大楼之间,或是穿越一条漫长的山体隧道。突然,车载导航屏幕上的定…...
ContentProvider call方法在跨进程通信中的高效实践
1. ContentProvider call方法入门:跨进程通信的新选择 第一次接触ContentProvider的call方法时,我还在用广播和AIDL处理跨进程通信。那会儿每次看到项目里复杂的AIDL接口定义和广播接收代码就头疼,直到发现这个被很多人忽略的"宝藏方法&…...
别再折腾了!Windows 10/11 下用 Anaconda 一键搞定 OpenPose Python 环境(附 CUDA 11.8 配置)
告别环境配置噩梦:Anaconda三分钟部署OpenPose全攻略 当你在深夜第三次重装CUDA驱动时,是否怀疑过人生?作为计算机视觉领域的里程碑式工具,OpenPose的人体姿态识别能力令人惊叹,但其复杂的环境配置却让无数开发者折戟沉…...
网安新手必刷的五个渗透测试靶场!黑客技术实战靶场零基础入门到精通教程!DVWA、Pikachu、SQLi-Labs、Upload-Labs、XSS-Labs靶场教程
前言 因为最近有任务需要搭建一些适合新手使用的靶场,所以收集了一下互联网常见的一些友好的新手渗透测试靶场。 分别是DVWA、Pikachu、SQLi-Labs、Upload-Labs、XSS-Labs。 DVWA靶场 DVWA靶场是一个专门用于漏洞测试和练习的Web应用程序,旨在为安全专业…...
