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

当我尝试将本地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>

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

步骤

  • 在GitHub上找到你的链接,然后点击文件的“Raw”版本。
  • 复制网址并链接到它。
  • 更改raw.githubusercontent.comrawgit.com (非生产)或cdn.rawgit.com (生产)

  • 示例

    http://raw.githubusercontent.com/user/repo/branch/file.js
    

    使用此URL进行开发:

    http://rawgit.com/user/repo/branch/file.js
    

    在制作中使用此网址:

    http://cdn.rawgit.com/user/repo/tag/file.js
    

    另请注意,对于生产环境,请考虑定位特定标签; 而不是分支,以确保您获得您期望的特定版本的文件,而不是随时间变化的HEAD版本。


    为什么这需要?

    GitHub开始使用X-Content-Type-Options: nosniff ,它指导更多的现代浏览器执行严格的MIME类型检查。 然后它返回服务器返回的MIME类型的原始文件,阻止浏览器按预期使用该文件(如果浏览器支持该设置)。

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


    这不再可能。 GitHub已经明确禁用了JavaScript盗链,并且新版本的浏览器也尊重该设置。

    单挑:nosniff header支持Chrome和Firefox


    rawgithub.com重定向到rawgit.com所以上面的例子现在是

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

    链接地址: http://www.djcxy.com/p/43677.html

    上一篇: Link and execute external JavaScript file hosted on GitHub

    下一篇: Does the V8 javascript engine have a GIL?