小编典典

链接并执行托管在 GitHub 上的外部 JavaScript 文件

all

当我尝试将本地 JavaScript 文件的链接引用更改为 GitHub 原始版本时,我的测试文件停止工作。错误是:

拒绝从 … 执行脚本,因为它的 MIME 类型 ( text/plain) 不可执行,并且启用了严格的 MIME 类型检查。

有没有办法禁用这种行为,或者是否有允许链接到 GitHub 原始文件的服务?

工作代码:

<script src="bootstrap-wysiwyg.js"></script>

非工作代码:

<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>

阅读 88

收藏
2022-03-08

共1个答案

小编典典

现在 ,使用jsdelivr.net有一个很好的解决方法。

步骤

  1. 在 GitHub 上找到您的链接,然后单击“原始”版本。
  2. 复制网址。
  3. 更改raw.githubusercontent.comcdn.jsdelivr.net
  4. 在您的用户名之前插入/gh/
  5. 删除branch名称。
  6. (可选)插入您要链接的 版本@version,如(如果您不这样做,您将获得 最新 的- 这可能会导致长期缓存)

例子

http://raw.githubusercontent.com/<username>/<repo>/<branch>/path/to/file.js

使用此 URL 获取最新版本:

http://cdn.jsdelivr.net/gh/<username>/<repo>/path/to/file.js

使用此 URL 获取特定版本或提交哈希:

http://cdn.jsdelivr.net/gh/<username>/<repo>@<version or hash>/path/to/file.js

对于生产环境 ,请考虑针对特定标签或提交哈希而不是分支。使用 最新
链接可能会导致文件长期缓存,导致您的链接在推送新版本时不会更新。通过提交哈希或标签链接到文件使链接对版本唯一。


为什么需要这个?

2013 年,GitHub 开始使用X-Content-Type-Options: nosniff,它指示更现代的浏览器强制执行严格的 MIME
类型检查。然后它以服务器返回的 MIME 类型返回原始文件,从而阻止浏览器按预期使用文件(如果浏览器接受该设置)。

有关此主题的背景信息,请参阅此讨论主题

2022-03-08