如果在使用umi3.x打包后,上线正式环境后,如果线上访问路径不是根路径而是二级目录的话,会出现资源找不到的问题。
首先查看.umirc.ts或config/config.js配置;以下我是用.umirc.ts
import { defineConfig } from 'umi';
const {PUBLIC_PATH ='/'} = process.env
export default defineConfig({
// dynamicImport: {
// loading: '@/Loading',
// },
nodeModulesTransform: {
type: 'none',
},
request: {
dataField: 'data',
},
base: PUBLIC_PATH, // 打包路径,默认是/
publicPath: PUBLIC_PATH, // 资源访问路径,默认/
define: {
APP_NAME,
REACT_APP_ENV,
},
locale: {
default: 'zh-CN',
antd: false,
title: false,
baseNavigator: true,
baseSeparator: '-',
},
// 需要后台模式可以添加以下配置
// layout: {},
});
查看代码可以知道,如果是打包上线到二级目录的话,对应的base和publicPath配置要改为对应的二级目录;比如xxx.xxx.com/abc,那么base和publicPath都必须是/abc