包括来自raw.github.com的js

Mar*_*ahn 55 javascript git internet-explorer github

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

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

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

X-Content-Type-Options: nosniff
Content-Type: text/plain
Run Code Online (Sandbox Code Playgroud)

这是我无法改变的.

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

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

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

小智 62

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

UPDATE

Rawgit服务(前Rawgithub)已经关闭.

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

在过去一个月内通过RawGit提供内容的GitHub存储库将继续提供至2019年的至少10月.其他存储库的URL不再提供.

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

  • https://raw.githack.com现在支持https.只需将`raw.github.com`替换为`raw.githack.com`即可 (4认同)
  • 由于在这种情况下您已经在使用与 github 无关的站点,您不妨使用 http://cdnjs.com/ (2认同)
  • 另请查看[raw.githack.com](http://raw.githack.com).这个想法是一样的,但它是一个普通的nginx解决方案,这意味着它应该工作得更快:) (2认同)

she*_*mer 14

我无法帮助你欺骗IE,我认为从这个角度来看你所寻找的是不可能的(并且气馁,因为这不是Github的原始URL的目的).

但是,您可以自动执行更改gh-pages并推动以使您的生活更轻松.您可以使用a post-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
Run Code Online (Sandbox Code Playgroud)

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

如果您有任何疑问,请告诉我,如果脚本可以帮助您!


neo*_*tic 7

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

用"githack"替换你的github/gist URL中的"githubusercontent"域名块,你就完成了!

此外,它支持bitbucket.com - 简单地用整个bitbucket域替换bb.githack.com.


Tek*_*kub 6

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

  • 是的,问题是每次我提交掌握切换到页面分支和复制文件时,它需要额外的工作.我只是想避免这种情况,因为它似乎没必要 (2认同)