В том числе js от raw.github.com
у меня есть github.com демо-страница, которая ссылается наhttps://raw.github.com/.../master/.../file.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-страницы в этом точном экземпляре, чтобы включить .js файл, так что IE больше не сломан, но все равно хотелось бы любой обратной связи:))
5 ответов:
Я не могу помочь вам обмануть IE, и я думаю, что с этой точки зрения то, что вы ищете, невозможно (и обескуражено, поскольку это не цель необработанных URL-адресов Github).
тем не менее, вы можете автоматизировать фиксацию изменений в
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/* \(.*\)//'); 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
обратите внимание, что это общий скрипт, хотя я указал config vars в верхней части для ваших целей.
$WATCH_FILES
может быть установлен в список файлов, разделенных фигурными скобками|
напримерindex.html|js/jquery.js
. Пути должны быть указаны относительно корня репозитория.Дайте мне знать, если у вас есть какие-либо вопросы, и если сценарий поможет вам!
вы можете попробовать использовать https://rawgithub.com/ сервис. Просто замените raw.github.com с помощью rawgithub.com.
обновление
Rawgithub теперь Rawgit:https://rawgit.com/ и добавил производство cdn, а также.
взгляните на raw.githack.com. Идея этого сервиса вдохновлена rawgit.com я просто понял, что с помощью целого фреймворка (node.js + express.js) для такой простой вещи, как запросы проксирования является чрезмерным, и сделал тот же материал, используя только nginx.
замените доменное имя" githubusercontent "в своем URL-адресе GitHub/gist на" githack", и все готово!
кроме того, он поддерживает bitbucket.com - просто замените весь оба домена с
bb.githack.com
.
необработанные URL-адреса Github не предназначены для общего веб-узла. Отодвиньте этот материал к правильному хозяину, как говорят 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/* \(.*\)//'); 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 не был опцией в реализации grep, включенной в оболочку Git Bash для Windows), добавьте
git pull
иgit push origin $DEST_BRANCH
. О, и мне пришлось добавить пустую оболочку из каталогов и файлов заранее (может быть, просто каталогов хватило бы?).Так как это на самом деле делает толчок, я думаю, что может быть лучше переключить этот скрипт на сценарий post-receive вместо post-commit. В противном случае вы можете нажать код на gh-страницы, которые никогда не попадали в master [если вы решите не нажимать его].