CapRover Nginx配置问题:无法加载.mjs模块文件
解决CapRover托管Storybook时.mjs文件MIME类型错误问题
问题核心是Nginx默认的mime.types文件可能未包含.mjs对应的正确MIME类型,即使你已经添加了include /etc/nginx/mime.types,也需要手动补充这个类型的映射。
直接修改你的CapRover应用自定义Nginx配置,按以下方式调整:
server { # 保留你原有配置里的其他内容,比如监听端口、反向代理(如果有的话)等 # 先引入默认MIME类型列表 include /etc/nginx/mime.types; # 手动添加.mjs文件的MIME类型映射 types { text/javascript mjs; } # 静态文件托管的核心配置(对应Storybook的构建产物目录) location / { root /usr/share/nginx/html; # 这里路径要匹配你Storybook构建文件存放的位置 try_files $uri $uri/ /index.html; } # 其他原有配置... }
为什么这样做?
有些版本的Nginx默认mime.types里没有.mjs的条目,浏览器会把application/octet-stream类型的文件当作普通二进制文件,无法识别为ES模块脚本。手动添加text/javascript的映射后,浏览器就能正确解析.mjs文件了。
额外注意事项
- 确保
include /etc/nginx/mime.types在你自定义的types块之前,这样默认类型和自定义类型会合并生效。 - 修改配置后,重启CapRover应用或者Nginx服务,让新配置生效。
内容的提问来源于stack exchange,提问作者Nikita Aplin
相关产品推荐
相关产品推荐

