Включая js с raw.github.com - PullRequest
       6

Включая js с raw.github.com

55 голосов
/ 24 августа 2011

У меня есть демонстрационная страница github.com, которая ссылается на https://raw.github.com/.../master/.../file.js, поэтому мне не нужно постоянно копировать файл .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 ]

62 голосов
/ 28 апреля 2013

Вы можете попробовать воспользоваться услугой https://rawgit.com/.Просто замените raw.github.com на rawgit.com

ОБНОВЛЕНИЕ

Служба Rawgit (ранее Rawgithub) была закрыта.

Срок действия RawGit истек 8 октября 2018 года.

Репозитории GitHub, которые доставляли контент через RawGit в течение последнего месяца, будут по-прежнему обслуживаться как минимум до октября 2019 года.. URL для других репозиториев больше не обслуживаются.

Если вы используете RawGit, пожалуйста, прекратите его использование, как только сможете.

14 голосов
/ 25 августа 2011

Я не могу помочь вам с обманом 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/* \(.*\)/\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.Пути должны быть указаны относительно корня репо.

Дайте мне знать, если у вас есть какие-либо вопросы, и поможет ли вам сценарий!

7 голосов
/ 07 апреля 2015

Взгляните на raw.githack.com .Идея этого сервиса вдохновлена ​​rawgit.com.Я только что понял, что использование целого фреймворка (node.js + express.js) для такой простой вещи, как проксирование запросов, является избыточным, и сделал то же самое, используя только nginx.

Замените блок имени домена githubusercontent в вашемgithub / gist URL с "githack" и все готово!

Более того, он поддерживает bitbucket.com - просто замените весь домен битбакета на bb.githack.com.

6 голосов
/ 25 августа 2011

Необработанные URL-адреса Github не предназначены для использования в качестве общего веб-хостинга.Передайте этот материал нужному хосту, например, скажем pages.github.com.

0 голосов
/ 20 января 2012

Я тоже пытаюсь этого добиться.Однако я не могу получить решение от @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 не был опцией для grepреализация включена в оболочку Git Bash для Windows), добавьте git pull и git push origin $DEST_BRANCH.О, и мне пришлось заранее добавить пустую оболочку каталогов и файлов (возможно, достаточно было бы каталогов?).

Так как это на самом деле делает толчок, я думаю, что может быть лучше переключитьсяэтот сценарий должен быть сценарием после получения, а не после принятия.В противном случае вы могли бы отправлять код на gh-страницы, который никогда не превращался в мастер [если вы не хотите его отправлять].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...