/xman-api 域名二级路径
/xmancloud 主应用路径
/xmancloud/playboxmicro 子应用路径
/xmancloud/commonmicro 子应用路径
/tptplaybox 活动路径
1. nginx 配置
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #主应用 location /xmancloud { try_files $uri $uri/ /xmancloud/index.html; if ($request_filename ~* .*\.(?:htm|html)$) { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; add_header X-Frame-Options ALLOWALL; } alias /mnt/nasdata/nginx/html/static/xman-cloud/; } # 子应用 location /xmancloud/commonmicro/{ add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Credentials 'true'; add_header Access-Control-Allow-Methods '*'; add_header Access-Control-Allow-Headers '*'; if ($request_method = 'OPTIONS') { add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma,sec-ch-ua,sec-ch-ua-mobile,Authorization,Accept'; return 200; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma,sec-ch-ua,sec-ch-ua-mobile,Authorization,Accept'; } if ($request_method = 'GET') { add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma,sec-ch-ua,sec-ch-ua-mobile,Authorization,Accept'; } if ($request_filename ~* .*\.(?:htm|html)$) { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; } alias /mnt/nasdata/nginx/html/static/xman-common/; index index.html index.htm; #try_files $uri $uri/ /index.html; } |
2. 项目配置修改
主 umi 打包配置
- cloud主应用 publicPath 修改为/xmancloud/, 这意味着静态资源引用都会加上 /xmancloud/**.js
- 子应用publicPath 修改为/xmancloud/commonmicro/ 这意味着静态资源引用都会加上 /xmancloud/commonmicro/**
- cloud主应用路由规则设置 base 修改为 /xmancloud, 这样路由中都会加上/xmancloud ,刷新后nginx才会定位到cloud项目
- 子应用的base 是(主应用的base + routes里 子应用的path)注意 “/”不要重复,/xmancloud/common,而且是主应用传递给子应用的,子应用不需要自己配置,子应用配置base也不会生效;可以从子应用的.umi/pluginqiankun/lifecycles.ts 看到 props.base
- 主应用 routes 不需要加xmancloud
注意
- 主应用加base: /xmancloud routes path:’/common’, 如果页面路径是/common/login 也会命中子应用,但子应用收到主应用给的 base 是/xmancloud/common,页面不会展示, 页面路径需要/xmancloud/common/login 才行
- 当主应用的base没有配置或者’/’, 主应用会把 routes 里的path,当作子应用的base 传给子应用。