Open uioz opened 3 years ago
按照先易后难的形式分为两个阶段实现.
要求在 mfe-config.appThatNeededProxy.publicPath
中指定静态资源的文件路径.
要求编写在 mfe-route.publicPath
中, 而不是 appThatNeededProxy.publicPath
中, 这样 mfe-proxy-middleware
会自动读取, 而 appThatNeededProxy
中存在的 publicPath
会覆盖远程 mfe-route.json
的内容.
说明
目前静态资源托管的规则是基于通配符来处理的, 所有基于
/static/*
开头的都将视为静态资源请求.但是这有两个缺点:
/static
并非所有项目通用, 也可能是/public
实现
为了兼容上述的两种情况,
mfe-config.js
需要修改为如下的定义:在不提供
static
选项的情况下, 直接托管构建好的目录, 如果输出路径完全匹配路由规则, 那么不需要做任何配置.例如项目 A 的所有静态资源地址需要请求
/static/appA
如果打包后的结构如下:如果你不愿意或者难以调整你打包后的目录, 这里还有一种传统的模式.
static 选项
mfe-config.static
是可选的, 默认情况下静态服务器应该直接托管打包后的目录, 如果你的静态资源不在构建的目录中, 则需要配置:那么静态服务器应该将
public
目录一并托管.你还可以指定
publicPath
如果你需要的话,publicPath
的默认值是/static
.另外还有一个可选的
staticPrefix
选项, 默认是开启的你可以指定false
来关闭它, 它会自动的在publicPath
后面添加项目名称(package.json
.name), 这是为了避免不同项目下的静态资源路径重复, 相应的你需要修改代码中静态资源的引用.如果你的项目是 appA 则实际的
publicPath
是 '/static/appA', 你也可以关闭它, 然后手动修改publicPath
为/static/appA
来实现同样的功能.直接托管模式
static
还可以通过标记为false
来表示启动直接托管模式.