raw.githubusercontent.com URL 代表啥?

Posted

技术标签:

【中文标题】raw.githubusercontent.com URL 代表啥?【英文标题】:What do raw.githubusercontent.com URLs represent?raw.githubusercontent.com URL 代表什么? 【发布时间】:2016-12-28 04:50:05 【问题描述】:

我想学习如何使用rawgit.com 为github.com 的其他应用程序提供服务。 所以我们有一种常用的方式在osx上下载并安装homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

我在 GitHub 上找不到 install 文件。它在哪里?

【问题讨论】:

您是否要求我们解释该安装命令的工作原理?您是否查看过raw.githubusercontent.com 上引用的文件的内容?你看过curl 的文档吗?你知道$() 在shell 中做了什么吗?你知道ruby -e 是做什么的吗? 我在存储库中找不到“安装”文件,这就是我问这个退出的原因 请注意,rawgit.com 不是 raw.githubusercontent.com 的别名。它是不隶属于 GitHub 的第三方服务。 RawGit 也处于或接近使用寿命终止状态;见rawgit.com 【参考方案1】:

raw.githubusercontent.com 域用于提供存储在 GitHub 存储库中的未处理版本的文件。如果您浏览到 GitHub 上的一个文件,然后单击 Raw 链接,那么您就会去那里。

您问题中的 URL 引用了 Homebrew/install repository 的 install file in the master branch。该命令的其余部分只是检索文件并在其内容上运行ruby

【讨论】:

我的假设是安装脚本位于主存储库中,谢谢 “未处理的文件版本”是什么意思? @Tristan,这意味着您将在没有任何 GitHub UI 的情况下看到文件的内容,并且通常会被渲染的文件(例如 Markdown)不会。您只会看到文件的原始文本内容。 如果我使用 GitHub 公共 repo 存储 JSON 文件并从其他地方读取。 我应该使用raw.githubusercontent 还是GitHub pages 我目前使用的是GitHub pages 链接,它更短。但在重新上传的情况下,我有时需要等待GitHub pages 重新更新自身。那么人们通常会做什么? @zummon,这完全取决于您的用例,并且非常基于意见。但是,如果该存储库的唯一 原因是托管在其他地方使用的 JSON 文件,那么我不会亲自设置 Pages 站点。不知道为什么 URL 的长度会有所不同。【参考方案2】:

查看 github 内容有两种方式,“原始”方式和“网页”方式。

raw.githubusercontent.com 返回存储在 github 中的文件的原始内容,因此可以简单地将它们下载到您的计算机上。例如,如果该页面代表一个 ruby​​ 安装脚本,那么您将获得一个 ruby​​ 安装脚本,您的 ruby​​ 安装可以理解。

如果您改为使用 github.com 链接下载文件,您实际上将下载一个带有按钮和 cmets 的网页,并在中间显示您想要的脚本——这是您想要提供给网络浏览器的内容得到一个好看的页面,但是对于计算机来说,它不是可以执行的脚本或可以编译的代码,而是要显示的网页。该网页有一个名为 Raw 的按钮,可将您转到raw.githubusercontent.com 上的相应内容。

在通常的github界面中查看raw.githubusercontent.com/$user/$repo/$branch/$path的内容:

    您将raw.githubusercontent.com 替换为纯github.com 并且您在 repo 名称和分支名称之间插入“blob”。

在这种情况下,用户是“Homebrew”,repo 是“install”,分支名称是“master”(这是一个非常常见的分支名称)。你在“install”和“master”之间插入“blob”,所以

https://raw.githubusercontent.com/Homebrew/install/master/install

变成

https://github.com/Homebrew/install/blob/master/install

这与在 Github 上查找文件并单击 Raw 链接相反。

【讨论】:

URL 的参数是什么意思,例如https://raw.githubusercontent.com/<repo>/master/filters/file.txt?_=215612 - ?_=215612 的目的是什么 ? 只是将“路径”与“搜索部分”分开(RFC 1738 第 3.3 节)。搜索部分在这里_=215612。 searchpart 不一定是搜索,它由服务器解释。我不知道这在原始文件中可能意味着什么。我唯一的想法是它可以在文件中的那个点启动或停止数据,但测试显示没有区别。事实上,即使在普通的 github.com 页面上,我也看不到 github 解释 searchpart 的证据。如果您仍然想知道,请在此处或在 github 专用论坛上提出新问题。 它可能会阻止客户端缓存(因为文件的内容可以更改) 不太正确,您忘记了user,它位于hostname 之后。查看this回答了解用户 @Timo 是的,我将用户和回购混为一谈,这可能令人困惑。改进了,谢谢。【参考方案3】:
raw.githubusercontent.com/username/repo-name/branch-name/path

username 替换为创建repo 的用户的用户名。

repo-name 替换为 repo 的名称。

branch-name 替换为分支的名称。

path 替换为文件的路径。

要反向转到 GitHub.com:

GitHub.com/username/repo-name/directory-path/blob/branch-name/filename

【讨论】:

以上是关于raw.githubusercontent.com URL 代表啥?的主要内容,如果未能解决你的问题,请参考以下文章

raw.githubusercontent.com URL 代表啥?

GitHub的raw.githubusercontent.com无法链接

`curl -L` 解决 GitHub 的 raw.githubusercontent.com 无法连接问题

raw.githubusercontent.com port 443: Connection refused

解决GitHub的raw.githubusercontent.com无法连接问题

临时解决GitHub的raw.githubusercontent.com无法连接问题