ant design pro 工程切换到非根目录部署 完整实践

要把ant design pro工程发布到非根目录, 例如 /foo这个目录, 期间遇到了不少问题, 记录下面, 避免大家继续趟坑。

作者原创, 如有转载, 请标明出错!

更换配置

  1. 更换发布的路径, 代码里面使用window.baseDir获取当前发布的路径/foo/, 默认的router.config不用添加/foo/, 路由全部在/foo/下面运行
const publicPath = '/foo/';

export default {
...
  manifest: {
    basePath: publicPath,
  },
  base: publicPath, //最终输出路径
  publicPath: publicPath,
...
}
  1. 更换ng的配置, 当然前提是docker编译的时候, 把dist目录拷贝到/usr/share/nginx/html/foo/这个目录
    location /foo/api/ { #如果你的请求全部在/foo下面的话
        proxy_pass https://api-server;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /foo {
        alias /usr/share/nginx/html/foo/;
        try_files $uri /foo/index.html;
    }
  1. 更换dev-server的proxy:
  proxy: {
    [`${publicPath}server/`]: {
      target: 'http://hljwx136.homwee.net/equipmentcenter/',
      changeOrigin: true,
      pathRewrite: { [`^${publicPath}server`]: '' },
    },
  },
  1. 到以上为止, 打包生成的发布文件已经全部ok, 但是开发者模式下yarn start, devServer模式下的umi.js umi.css等文件路径还是不对,需要从根目录切换到/foo
    最后还是读工具的源码, 才发现他使用的webpack的output的publicPath作为umi.js的路径前缀, 又在umi文档找了很久, 无意在英语版本才发现chainWebpack的配置方法
export default {
  chainWebpack: function(config, { webpack }) {
    config.merge({
      output: {
        publicPath: publicPath,
      },
    });
  },
......
  devServer: {
    publicPath: publicPath,
  },
......
}

针对yarn create umi方式创建的工程的更新

2019.8.16
最近发现, 原来拷贝整个pro.antd工程的方式已经不推荐了, 转而使用了yarn create umi的方式来创建一个干净的工程, 然后再根据区块来添加想要的内容模板
针对这个工程, 我发现上面的大部分配置都还是有用的, 需要改变的是chainWebpack的方式, 新的工程已经包含了chainWebpack, 只需要在config/plugin.config.ts里面修改如下:

import { publicPath } from './config';
....
export default (config: any) => {
...
  //change root path
  config.merge({
    output: {
      publicPath: publicPath,
    },
  });
}

2019年8月20日更新

发现src/pages/documents.ejs下面的路径没有更新过来, 做如下修改

    <link rel="shortcut icon" href="<%= context.publicPath %>favicon.png" type="image/x-icon">
    <link rel="icon" sizes="any" mask="" href="<%= context.publicPath %>favicon.svg">

如果帮到了你, 点个

赞!

赠人玫瑰,指尖留香:)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容