IIS上Module Federation的remoteEntry.mjs加载失败求助
解决IIS部署Angular+NX微前端时remoteEntry.mjs加载404.3错误
核心原因
IIS默认不识别.mjs扩展名,无法正确解析该类型文件导致404.3错误;另外你访问的是remoteEntry.js,但Module Federation生成的通常是.mjs文件,扩展名不匹配也会引发问题。
步骤1:添加MIME类型
- 打开IIS管理器,选中你的宿主应用站点
- 双击功能视图中的MIME类型
- 右侧点击添加,填入:
- 文件扩展名:
.mjs - MIME类型:
application/javascript
- 文件扩展名:
- 点击确定保存
步骤2:配置.mjs文件处理器
- 回到站点功能视图,双击处理程序映射
- 右侧点击添加模块映射,填入:
- 请求路径:
*.mjs - 模块:选择
StaticFileModule(下拉列表中查找) - 名称:自定义,比如
MJS Static File Handler
- 请求路径:
- 点击确定,弹出“是否创建关联”提示时选是
步骤3:修正remoteEntry路径配置
- 检查宿主应用的Module Federation配置(通常在
project.json或webpack.config.js中),确保远程应用的remoteEntry路径是/app1/remoteEntry.mjs(注意是.mjs而非.js) - 确认远程应用打包后确实生成了
remoteEntry.mjs文件,且部署在http://localhost/app1目录下
备选:直接修改web.config(更快捷)
如果不想手动操作IIS管理器,可在宿主或远程应用根目录下创建/修改web.config,添加以下配置:
<configuration> <system.webServer> <staticContent> <!-- 注册.mjs的MIME类型 --> <mimeMap fileExtension=".mjs" mimeType="application/javascript" /> </staticContent> <handlers> <!-- 配置.mjs文件的静态处理器 --> <add name="MJS_Static_Handler" path="*.mjs" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> </handlers> </system.webServer> </configuration>
内容的提问来源于stack exchange,提问作者Krishna Krish
相关产品推荐
相关产品推荐

