当我试图将本地JavaScript文件的链接引用更改为GitHub原始版本时,我的测试文件停止工作。错误是:
拒绝执行脚本…因为它的MIME类型(文本/纯)是不可执行的,并且启用了严格的MIME类型检查。
有没有办法禁用这种行为,或者有没有服务允许链接到GitHub原始文件?
工作代码:
<script src="bootstrap-wysiwyg.js"></script>
故障代码:
<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
GitHub Pages是GitHub针对这个问题的官方解决方案。
生的。githubusercontent使所有文件都使用文本/纯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›,提交到g -pages分支的每个文件(最近提交的)都出现在这个url中。所以你可以通过<script src="https:// user›.github.io/ repo›/file.js"></script>链接到你的js文件,这将是正确的MIME类型。
你有构建文件吗?
Personally, my recommendation is to run this branch parallel to master. On the gh-pages branch, you can edit your .gitignore file to check in all the dist/build files you need for your site (e.g. if you have any minified/compiled files), while keeping them ignored on your master branch. This is useful because you typically don’t want to track changes in build files in your regular repo. Every time you want to update your hosted files, simply merge master into gh-pages, rebuild, commit, and then push.
(提示:你可以通过以下步骤在同一个提交中合并和重建:)
$ 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