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
変更できません。
誰もがこれと同じことを達成する方法を考えていますか?どういうわけか、常にgh-pages
ブランチにプッシュする必要なく、master
ブランチ内のファイルにリンクすることができますか?
実際のページ: http://cwolves.github.com/jQuery-iMask/
(マイナーアップデート-この正確なインスタンスでgh-pagesを変更して.jsファイルを含めたので、IEはもう壊れていませんが、フィードバックが必要です:))
私はIEをだますのを手伝うことはできません、そして私はその角度からあなたが探しているものは不可能だと思います(そしてそれはGithubの生のURLの目的ではないのでお勧めしません)。
ただし、gh-pages
への変更のコミットとプッシュを自動化して、作業を簡単にすることができます。 post-commit hook
を使用すると、gh-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
で区切られたファイルのリストに設定できます。リポジトリのルートからの相対パスを指定する必要があります。
ご不明な点がありましたら、またスクリプトが役に立ちますか?
https://rawgit.com/ サービスを使用してみてください。 raw.github.comをrawgit.comに置き換えるだけです
[〜#〜]更新[〜#〜]
Rawgitサービス(以前のRawgithub)はシャットダウンされました。
RawGitの耐用年数が終了しました2018年10月8日
先月中にRawGitを介してコンテンツを提供したGitHubリポジトリは、少なくとも2019年10月まで提供され続けます。他のリポジトリのURLは提供されなくなります。
現在RawGitを使用している場合は、できるだけ早く使用を中止してください。
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のように、これらを適切なホストにプッシュします。
私もこれを達成しようとしています。しかし、@ shelhamerからコードベースで機能するようにソリューションを取得できないようです。以下は、私がそれを機能させるために使用した更新後のコミットフックスクリプトです。
#!/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
正規表現を正常に一致させるには、grepの使用を更新する必要がありました(-Pは、Git Bash Shell for Windowsに含まれるgrep実装のオプションではありませんでした)、git pull
とgit Push Origin $DEST_BRANCH
を追加します。ああ、私はディレクトリとファイルの空のシェルを事前に追加する必要がありました(おそらくディレクトリだけで十分でしょうか?)。
これは実際にはプッシュを実行しているので、このスクリプトをポストコミットではなくポスト受信スクリプトに切り替える方が良いと思います。それ以外の場合は、マスターにしたことのないghページにコードをプッシュする可能性があります(プッシュしないことを選択した場合)。