链接并执行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。
步骤 :
raw.githubusercontent.com
到rawgit.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
上一篇: Link and execute external JavaScript file hosted on GitHub