包括来自 raw.github.com 的 js

IT技术 javascript git internet-explorer github
2021-03-16 17:12:07

我有一个链接到https://raw.github.com/.../master/.../file.js的 github.com 演示页面,这样我就不需要总是将.js文件复制gh-pages每次更改时分支。这适用于每个浏览器,除了 IE 抱怨:

SEC7112:来自https://raw.github.com/cwolves/jQuery-iMask/master/dist/jquery-imask-min.js 的脚本由于 MIME 类型不匹配而被阻止

此投诉来自以下事实:该文件是通过以下方式传输的:

X-Content-Type-Options: nosniff
Content-Type: text/plain

我无法改变。

任何人都有任何想法如何完成同样的事情?以某种方式允许我链接到master分支中的文件而不必总是将其推送到gh-pages分支?

实际页面:http : //cwolves.github.com/jQuery-iMask/

(次要更新 - 我在这个确切的实例中更改了 gh-pages 以包含 .js 文件,因此 IE 不再损坏,但仍然需要任何反馈:))

6个回答

您可以尝试使用https://rawgit.com/服务。只需将 raw.github.com 替换为 rawgit.com

更新

Rawgit 服务(以前的 Rawgithub)已关闭。

RawGit 已达到其使用寿命 2018 年 10 月 8 日

上个月通过 RawGit 提供内容的 GitHub 存储库将继续提供至少到 2019 年 10 月。不再提供其他存储库的 URL。

如果您目前正在使用 RawGit,请尽快停止使用。

另请查看raw.githack.com这个想法是一样的,但它是一个普通的 nginx 解决方案,这意味着它应该工作得更快一点:)
2021-04-22 17:12:07
谢谢,rawgithub 是完美的。
2021-05-05 17:12:07
现在这是rawgit.com
2021-05-05 17:12:07
raw.githack.com现在支持 https。只需替换raw.github.comraw.githack.com
2021-05-16 17:12:07
因为在这种情况下你已经在使用一个不附属于 github 的站点,你不妨使用cdnjs.com
2021-05-20 17:12:07

我无法帮助您欺骗 IE,我认为从这个角度来看,您正在寻找的东西是不可能的(并且不鼓励,因为这不是 Github 原始 URL 的目的)。

但是,您可以自动提交更改gh-pages并推送,以使您的生活更轻松。您可以使用 apost-commit hookgh-pages自动更新分支中的相关文件post-commit编写了这样一个脚本来监视对某些文件的更改并将它们提交到另一个分支:

#!/bin/sh

WATCH_BRANCH="master"
WATCH_FILES="jquery-imask-min.js"
DEST_BRANCH="gh-pages"

# bail out if this commit wasn't made in the watched branch
THIS_BRANCH=$(git branch --no-color | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/');
if [ "$THIS_BRANCH" != "$WATCH_BRANCH" ]; then
  exit 0
fi

# only update if watched files have changed in the latest commit
CHANGED_FILES=$(git show --pretty="format:" --name-only $WATCH_BRANCH)
if $(echo "$CHANGED_FILES" | grep "^$WATCH_FILES$" -q); then
  # checkout destination branch, then
  # checkout latest version of each watched file and add to index
  git checkout -q $DEST_BRANCH
  git pull -q
  SAVEIFS=$IFS
  IFS=$(echo -n "|")
  for file in $WATCH_FILES; do
    git checkout $WATCH_BRANCH -- $file
    git add $file > /dev/null
  done
  IFS=$SAVEIFS
  # commit with a chance to edit the message, then go back to watched branch
  LATEST_COMMIT=$(git rev-parse $WATCH_BRANCH)
  git commit -m "Also including changes from $WATCH_BRANCH's $LATEST_COMMIT"
  git push origin $DEST_BRANCH
  git checkout -q $WATCH_BRANCH
fi

请注意,这是一个通用脚本,但我已在顶部指定了配置变量以供您使用。$WATCH_FILES可以设置为由大括号分隔的文件列表,|例如index.html|js/jquery.js. 必须相对于存储库的根指定路径。

如果您有任何问题,以及脚本是否对您有帮助,请告诉我!

看看raw.githack.com这项服务的想法来自于 rawgit.com。我刚刚意识到将整个框架(node.js + express.js)用于请求代理这样简单的事情是过度杀伤力的,并且仅使用 nginx 制作了相同的东西。

将 github/gist URL 中的“githubusercontent”域名块替换为“githack”就大功告成了!

此外,它支持bitbucket.com - 只需将整个 bitbucket 域替换为bb.githack.com.

Github 的原始 URL 并非设计为通用 Web 主机。把这些东西推到合适的主机上,比如 pages.github.com。

是的,问题在于每次我向 master 提交切换到页面分支并复制文件时都需要额外的工作。我只是想避免这种情况,因为这似乎没有必要
2021-05-07 17:12:07

现在有jsDelivr,它是开源的,免费且快速的。并支持GitHub!https://www.jsdelivr.com/

此外,它来自可信赖的人/公司。

我这么说是因为我不确定我们是否可以信任https://raw.githack.com/