umi 3.x打包后资源访问路径问题

如果在使用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

你可能感兴趣的:(umi 3.x打包后资源访问路径问题)