GitHub Pages有没有一种快捷的方式来链接其git仓库中的文件?

8
我有一个git代码库,位于https://github.com/ozzyogkush/solitaire-webapp,并且已经为该代码库设置了GitHub pages分支(位于https://github.com/ozzyogkush/solitaire-webapp/tree/gh-pages)。问题是,GitHub pages(在http://ozzyogkush.github.io/solitaire-webapp/渲染时)是否以任何方式“看到”主要代码库?也就是说,如果我想包含样式表(例如存储在{repository}/somedir/css/somecss.css中),是否有一种快捷方式来实现(同时发送正确的MIME类型),或者我必须链接到完整的原始数据URL?
如果您查看GH Pages的源代码,您会发现我正在从代码库中获取一些CSS和JS,使用完整路径到原始源,并且两者都以纯文本形式返回,而不是如预期的text/cssapplication/javascript
5个回答

3
Github原始URL(如 https://raw.githubusercontent.com/ozzyogkush/solitaire-webapp/master/prodbuild/css/bootstrap.css)将始终返回 text/plain MIME类型。
一些Stack Overflow答案谈论了像 https://rawgithub.com/这样的服务,它可以返回css和javascript的正确MIME类型。但是它们无法控制并且可能成为真正的安全问题,因为您必须信任它们发送原始内容。对我来说不是一个选项。
这个带有提交后钩子的答案可以将您修改过的资源从主分支发送到gh-pages,似乎是一个很好的解决方案。
您还可以在Grunt与Jekyll混合的一侧看到,并将所有代码保存在同一个分支上。

提交钩子似乎是一个相当不错的解决方案,我会尝试一下。 - Derek
尚未实现,但这是我要走的方式,不过我会尝试使用后拉钩子。接受这个作为答案。 - Derek

2
如果CSS或JS文件也在gh-pages分支中,使用相对链接应该没有问题。
  <link rel="stylesheet" href="/assets/themes/mark-reid/css/syntax.css" type="text/css" />

您可以先将这些 CSS 和 JS 文件合并到您的 gh-pages 分支中,然后使用相对链接来引用它们。


是的,我想那是一种方法。我只是希望能够将新的源代码推送到我的“master”分支,由于“gh-pages”html文件只是指向主分支的源代码,因此它会自动从存储库中看到它。它确实这样做了,但它提供了错误的MIME类型:/你的方法可以工作,但需要手动合并的额外步骤。 - Derek
@Derek,根据你的实践经验,即使指定 type="text/css",引用 GitHub 上 master 分支的原始内容也不起作用吗? - yipeipei

1
回答你的第一个问题,不行。gh-pages分支根据定义是孤立的分支,因此无法从jekyll访问主repo分支。
另外,你可以使用以下结构在jekyll中访问gh-pages分支中文件的基于github的路径: https://github.com/username/reponame/commits/master/{{ page.path }} 例如,@benbalter 在他的个人博客上使用这个结构来呈现链接,使用户可以编辑他的内容并打开pull请求。

0
据我所知,GitHub 存储库不适用于托管(参见this other SO article)。
不清楚您在gh-pages分支上已经完成了哪些工作,但也许this guide可以帮助您确保一切都配置正确。该文章概述了如何设置,以便像<link rel="stylesheet" href="{{ site.baseurl }}/css/main.css" >这样的快捷方式是可能的。

不幸的是,我使用的是 Windows 系统,而 jekyll 不支持该系统。我确实简要地研究过这个问题。 - Derek

0
你可能会感兴趣的是,现在你不需要一个gh-pages分支来服务于GitHub Pages了。你可以直接从master分支服务这些页面。 你需要一个README.md文件或index.mdindex.html文件。从这里开始,你可以引用存储库中的所有文件,并正确设置内容类型头文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接