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