nginx配置PDFjs报错无法显示

AI-摘要
SeeYou GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
nginx配置PDFjs报错无法显示
西柚一、错误描述
在使用 PDFjs 时,可能会遇到以下错误:Failed to load module script: Expected a JavaScript module script but the server responded...。
错误原因是服务器返回的文件 MIME 类型不正确。浏览器期望模块脚本的 MIME 类型为 application/javascript,但实际服务器返回的不是这个类型,导致浏览器拒绝加载并显示此错误。
二、解决办法
以下记录了解决过程,以及本人最终的解决办法。
(一)Nginx 配置
尝试一(未生效)
- 在 Nginx 的默认
mime.types文件中没有为.mjs扩展名设置条目,这意味着它将被作为application/octet-stream而不是application/javascript进行服务。 - 网上查询到的解决方法有的是在
http模块直接添加以下内容,或者直接修改mime.types:
server { include mime.types; types { application/javascript mjs; } }- 但这种方式在某些情况下可能没有起到作用。
- 在 Nginx 的默认
尝试二(部分生效)
- 另一种方式是在
location中添加以下代码:
http { #… server { listen 80; server_name your_domain.com; location / { root /path/to/files; types { application/javascript mjs; } } } #… }- 这种方式在火狐中正常显示,但在 Chromium 内核的浏览器中访问对应的路径变成了下载,不管什么样的路径,无论是登录还是正常的页面。
- 另一种方式是在
最终解决办法
- 在
mime.types中修改,增加application/javascript mjs;,并且在location中使用include指令引入mime.types,此时问题解决。
http { #… server { listen 80; server_name your_domain.com; location / { root /path/to/files; include /path/to/mime.types; } } #… }- 在
(二)其他方法
除了在 Nginx 中解决外,还有其他解决办法:
- 降低版本使用非
.mjs的版本。 - 修改
.mjs后缀为.js。
对于 Apache 的配置,方法也类似,就是添加 application/javascript mjs;,关于apache的配置,方法也类似,就是添加application/javascript mjs;在.htaccess中或者在server configuration文件中添加`AddType application/javascript .mjs。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果







