当前位置: 首页 > 知识库问答 >
问题:

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

都阳辉
2023-03-14

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

拒绝从...执行脚本,因为其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>

共有3个答案

顾俊誉
2023-03-14

rawgithub.com重定向到rawgit.com,因此上面的示例现在将是

http://rawgit.com/user/package/master/link.min.js

柳德义
2023-03-14

这已经不可能了。GitHub已经明确禁用了JavaScript热链接,新版本的浏览器也尊重这一设置。

提示:Chrome和Firefox将支持nosniff头

常彭薄
2023-03-14

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

步骤:

  1. 在GitHub上找到链接,然后单击“原始”版本。
  2. 复制URL。
  3. raw.githubusercontent.com更改为cdn.jsdelivr.net
  4. 在用户名前插入/gh/
  5. 删除分支名称。
  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

对于生产环境,请考虑以特定标记或commit-hash为目标,而不是以分支为目标。使用最新链接可能会导致文件长期缓存,导致您的链接在推送新版本时无法更新。通过commit-hash或标记链接到文件会使链接对版本唯一。

为什么需要这个?

2013年,GitHub开始使用x-content-type-options:nosniff,它指示更现代的浏览器强制执行严格的MIME类型检查。然后,它以服务器返回的MIME类型返回原始文件,阻止浏览器按预期使用该文件(如果浏览器遵守设置)。

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

 类似资料:
  • 当我尝试将本地JavaScript文件的链接引用更改为GitHub raw版本时,我的测试文件停止工作。错误是: 拒绝从...执行脚本,因为其MIME类型()不可执行,并且启用了严格的MIME类型检查。 有没有办法禁用这种行为,或者有没有一种服务允许链接到GitHub原始文件? 工作代码: 非工作代码:

  • 我有一个小型开源图书馆的分叉,我正在github上工作。我想通过maven让其他开发人员可以使用它,但是我不想运行我自己的Nexus服务器,因为它是一个分叉,所以我不能轻松地将它部署到oss.sonatype.org. 我想做的是将它部署到github,这样其他人就可以使用maven访问它。最好的方法是什么?

  • 我知道可以使用或的MD语法将图像放置在MD中,但我很难将SVG放置在代码托管在GitHub上的MD中。 最终使用rails3,并且现在经常更改模型,所以我使用RailRoady生成模型的模式图的SVG。我希望将SVG放在readme.md中并显示出来。当我在本地打开SVG文件时,它确实起作用,那么我如何让浏览器呈现MD文件中的SVG呢?考虑到代码在完成之前是动态的(似乎永远不会),将SVG托管在一

  • 问题内容: 现在,yourfile.js包含以下行 我得到了错误 如何打开URL并从Java获取其链接? 问题答案: 根据文档: 窗口对象代表浏览器中打开的窗口。 由于您没有在浏览器中执行脚本,因此未定义窗口对象。 您可以使用URL / URLConnecion类读取URL,并将其提供给ScriptEngine。这里有一个教程。

  • 外部链接 关键参数 报告 method metrics(指标, 数据单位) 其他参数 外部链接 source/link/a pv_count (浏览量(PV)) pv_ratio (浏览量占比,%) visit_count (访问次数) visitor_count (访客数(UV)) new_visitor_count (新访客数) new_visitor_ratio (新访客比率,%) ip_c

  • 问题内容: 我有一个名为的HTML文件: 另一个JavaScript文件放置在同一目录的文件夹中。 加载HTML文件时,此代码工作正常,但是当我在服务器中运行该代码时,此代码不起作用。 我使用Python的Flask框架进行后端编程,有趣的是,如果我在HTML文件中扩展JavaScript代码,则同样的东西也可以很好地工作。唯一的问题是外部文件。 问题答案: 将文件用作静态资源: 将文件移动到包的