56 votes

Y compris js de raw.github.com

J'ai un github.com page de démonstration qui est un lien vers https://raw.github.com/.../master/.../file.js de sorte que je n'ai pas besoin de toujours copier l' .js fichier sur l' gh-pages de la branche à chaque fois qu'il a changé. Cela fonctionne dans tous les navigateurs sauf IE qui se plaint:

SEC7112: Script de https://raw.github.com/cwolves/jQuery-iMask/master/dist/jquery-imask-min.js a été bloqué en raison de mime incompatibilité de type

Cette plainte vient du fait que le fichier est transféré avec:

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

qui je ne peux pas changer.

N'importe qui ont des idées sur la façon d'accomplir la même chose? En quelque sorte, me permettant de lien vers le fichier dans l' master branche sans avoir à le pousser à la gh-pages de la branche?

Page: http://cwolves.github.com/jQuery-iMask/

(Mise à jour mineure -- j'ai changé le gh-pages dans cette instance exacte pour inclure l' .js fichiers, de sorte que IE n'est plus cassé, mais souhaitez tout de même tous les commentaires :))

61voto

H Sampat Points 493

Vous pouvez essayer d'utiliser https://rawgithub.com/ service. Il suffit de remplacer raw.github.com par rawgithub.com.

METTRE À JOUR

Rawgithub est maintenant Rawgit: https://rawgit.com/ et a également ajouté un cdn de production.

14voto

shelhamer Points 4327

Je ne peux pas vous aider avec la ruse c'est à dire, et je pense que de ce point de vue ce que vous cherchez est impossible (et découragé, puisque ce n'est pas le but de Github premières de l'Url).

Cependant, vous pouvez automatiser de commettre les changements d' gh-pages et en le poussant à faire de votre vie plus facile. Vous pouvez le faire avec un post-commit hook de mettre à jour les fichiers concernés dans l' gh-pages de la branche automatiquement. J'ai concocté un tel post-commit script qui regarde de modifications de certains fichiers et les engage à une autre branche:

#!/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

Notez que c'est un script général, si j'ai spécifié la config de vars au top pour vos fins. $WATCH_FILES peut être réglé à une liste de fichiers délimités par des accolades | comme index.html|js/jquery.js. Les chemins d'accès doivent être définis par rapport à la racine de l'opération.

Laissez-moi savoir si vous avez des questions, et si le script permet de vous!

6voto

Tekkub Points 8989

Les URL brutes de Github ne sont pas conçues pour être un hôte Web générique. Transmettez ces éléments à l'hôte approprié, comme par exemple pages.github.com.

0voto

James M. Greene Points 570

Je suis également essayé d'atteindre cet objectif. Cependant, je n'arrive pas à obtenir la solution de @shelhamer de travailler dans ma base de code. Ci-dessous la mise à jour post-commit hook script que j'ai utilisé pour le faire fonctionner:

#!/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

J'ai eu à mettre à jour l'utilisation de grep pour faire de la regex avec succès match (-P n'était pas une option sur la commande grep la mise en œuvre inclus dans Git Bash shell pour Windows), ajouter un git pull et git push origin $DEST_BRANCH. Oh, et j'ai dû ajouter une coquille vide des répertoires et des fichiers à l'avance (peut-être juste les répertoires aurait suffi?).

Puisque c'est en train de faire une poussée, je pense qu'il peut être préférable de passer ce script pour être un post-recevoir script au lieu de post-commit. Sinon, vous pourriez être en poussant code de gh-pages qui n'ont pas de master [si vous choisissez de ne pas le pousser].

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X