GitHub Pages是 GitHub 官方针对这个问题的解决方案。
raw.githubusercontent
使所有文件都使用text/plain
MIME 类型,即使文件是 CSS 或 JavaScript 文件。所以https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
将不会是正确的 MIME 类型,而是一个纯文本文件,并且通过链接它<link href="..."/>
或<script src="..."></script>
将不起作用——CSS 将不适用/JS 将无法运行。
GitHub Pages在一个特殊的 URL上托管你的存储库,所以你所要做的就是签入你的文件并推送。请注意,在大多数情况下,GitHub Pages 要求您提交到一个特殊的分支gh-pages
.
在您的新站点(通常是 )上https://‹user›.github.io/‹repo›
,提交到gh-pages
分支的每个文件(最近的提交)都出现在此 url 中。因此,您可以通过 链接到您的 js 文件<script src="https://‹user›.github.io/‹repo›/file.js"></script>
,这将是正确的 MIME 类型。
你有构建文件吗?
就个人而言,我的建议是将此分支与master
. 在gh-pages
分支上,您可以编辑.gitignore
文件以签入站点所需的所有 dist/build 文件(例如,如果您有任何缩小/编译的文件),同时在您的分支上忽略它们master
。这很有用,因为您通常不想跟踪常规存储库中构建文件的更改。每次要更新托管文件时,只需合并master
到gh-pages
、重建、提交,然后推送即可。
(提示:您可以通过以下步骤在同一提交中合并和重建:)
$ git checkout gh-pages
$ git merge --no-ff --no-commit master # prepare the merge but don’t commit it (as if there were a merge conflict)
$ npm run build # (or whatever your build process is)
$ git add . # stage the newly built files
$ git merge --continue # commit the merge
$ git push origin gh-pages