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。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果