解决 mjs 脚本无法被正确响应(Nginx/客户端错误MIME)

这儿有一个曾经不常见,现在开始常见的文件后缀,mjs。

本篇文章不讨论 mjs 为什么叫 ES Modules 脚本,只针对问题,提出解决方案。

例如近期更新 Nextcloud 28,发现已经启用 mjs 脚本文件,而此时客户端即使正常接收,也未能正确处理。问题很明显,在控制台中清楚说明“MIME 文件类型错误”。表现为:Failed to load module script: The server responded with a non-JavaScript MIME type of “application/octet-stream”. Strict MIME type checking is enforced for module scripts per HTML spec.

mjs 脚本被 Nginx 以 content-type:application/octet-stream 传出来了。

目的:变 mjs 为 application/javascript。

正常 Nginx

如果是通过软件包正常安装的 Nginx,那么配置文件在 /etc/nginx/mime.types

启用编辑:vim /etc/nginx/mime.types

关注到行:application/javascript js;

将这一行修改为:application/javascript js mjs;

保存编辑。

重启 Nginx:sudo nginx -s reload

宝塔面板

如果是宝塔面板的 Nginx,打开宝塔文件管理器。

访问目录:/www/server/nginx/conf

打开文件:mime.types

关注到第8行:application/javascript js;

将这一行修改为:application/javascript js mjs;

保存编辑。

返回宝塔主页,重启 Nginx 服务。

0 0 投票数
文章评分
0 评论
内联反馈
查看所有评论
0
本文贡献者正期待您发表意见x
滚动至顶部