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