将GitHub中的JavaScript文件包含在HTML页面中

Ion*_*zău 48 javascript github

请注意!

此更改后,您无法直接从Github包含Github脚本.

我们X-Content-Type-Options: nosniff在2011年将标题添加到我们的原始URL响应中,这是打击热链接的第一步.这具有强制浏览器根据Content-Type标题处理内容的效果.这意味着当我们设置Content-Type: text/plain文件的原始视图时,浏览器将拒绝将该文件视为JavaScript或CSS.

但也有其他选择.检查我对这个问题的回答.


我试图将GitHub中的JavaScript文件包含到本地HTML文件中进行测试(如在互联网上找到的图像:) <img src="http://...">.

我想要这样的东西:

<script src="https://github.com/[username]/[repository]/blob/master/public/[fileName].js"></script>
Run Code Online (Sandbox Code Playgroud)

问题是这不起作用.

我怎样才能做到这一点?

Lix*_*Lix 52

您可以使用类似于此的URL来执行此操作:

https://rawgit.com/h5bp/html5-boilerplate/master/src/js/plugins.js
Run Code Online (Sandbox Code Playgroud)

请注意,这与单击GitHub中的"原始"按钮不同; 该按钮还将为您提供该文件的干净版本,但它将使用错误的标题发送.


一句警告; 该文件不是由GitHub提供的.它正在通过rawgit.com域重定向.正如https://rawgit.com所述:

嘿! rawgit.com只是为了好玩,并且不以任何方式与GitHub相关联.

请记住,该域名的所有者现在在流量控制和能够操纵它,因为他们认为合适的.


在生产中使用此URL:

https://cdn.rawgit.com/user/repo/tag/file
Run Code Online (Sandbox Code Playgroud)

  • 来自rawgit的2018年10月8日更新:"RawGit现在处于落日阶段,很快就会关闭.这是一个有趣的五年,但一切都必须结束." (4认同)
  • “ RawGit将很快关闭,不再提供新的存储库” (3认同)
  • 这应该不起作用,因为GitHub更改了raw.github.com的内容类型.请参阅https://github.com/blog/1482-heads-up-nosniff-header-support-coming-to-chrome-and-firefox ..你可以使用www.rawgithub.com (2认同)

小智 9

启用存储库的 GitHub 页面后,使用以下链接:

<script src="https://[username].github.io/[repository]/[filename].js"></script>
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 6

更新的答案:

我在 2014 年给出的旧答案已停止工作,但您可以使用第 3 方 CDN 直接从 github 提供 js。Jsdelivr 是其中之一,由 CloudFlare 和 Fastly 提供支持。

例子:

<script src="https://cdn.jsdelivr.net/gh/<user>/<repo>/<filename>.js">
Run Code Online (Sandbox Code Playgroud)

或者使用他们的工具进行转换: https: //www.jsdelivr.com/github

旧答案:

即使 github 最近发生了变化,这仍然有效:

<script>
  $.getScript("https://raw.github.com/username/repo/master/src/script.js");
</script>
Run Code Online (Sandbox Code Playgroud)

附言。需要 jQuery。

  • @Sumit我知道,这就是为什么我使用“getScript”,而不是“&lt;script src”。不管怎样,谢谢你的反对票。 (3认同)
  • @Sumit 2014年就这么做了 (2认同)

Shi*_*ora 6

rawgit 看起来像是在 2019 年底关闭,

使用适当的 Content-Type 标头传送内容的一些选项。

  1. https://raw.githack.com/ , https://combinatronics.com= >exact 替代但它不能用于从客户端 javascript 获取,因为这里启用了 cors。
  2. jsdelivr => 用于传递 javascript 文件


Cof*_*ode 5

这应该工作:

<script src="https://raw.github.com/[username]/[repository]/[branch]/[filename].js"></script>
Run Code Online (Sandbox Code Playgroud)

以下是如何将您重定向到github中所需的地址:

在此输入图像描述

  • 这将*不起作用,见上面的anser(http://stackoverflow.com/a/14033306/167251) (14认同)

bda*_*ina 5

您可以在GITHUB 页面中包含托管的CSSHTMLJS文件

只需单击 github 存储库上的设置,然后在此选项卡中向下滚动到 GitHub 页面并使用下拉列表进行选择

然后 HOray 您现在可以实时访问它

这是返回文本/纯 mime 类型的原始数据

https://raw.githubusercontent.com/bdalina54/bdalina54.github.io/master/assets/js/terebra/acrior.js

<script src="https://raw.githubusercontent.com/bdalina54/bdalina54.github.io/master/assets/js/terebra/acrior.js"></script>
Run Code Online (Sandbox Code Playgroud)

这是现场版本

https://bdalina54.github.io/assets/js/terebra/acrior.js

<script src="https://bdalina54.github.io/assets/js/terebra/acrior.js"></script>
Run Code Online (Sandbox Code Playgroud)

你可以查看我的截图,我是如何做到的

https://prnt.sc/obbrpn

https://prnt.sc/obbt69

https://prnt.sc/obbskb