Comment réparer HTTP 404 sur les pages Github?


166

Voici mon dépôt GitHub sur la gh-pagesbranche. Tout semble bon, j'ai mes index.html, mes dossiers CSS, JS et images.

Mais lorsque j'accède à http://roine.github.com/p1, j'obtiens HTTP 404 introuvable.

Une explication et une solution?


2
Je suppose que vous avez suivi la documentation ? Avez-vous un e-mail? - Du 404: "Nous vous enverrons un e-mail une fois votre page créée. Cela peut prendre jusqu'à dix minutes avant que votre page soit disponible."
David Cain

J'ai essayé la page générée et cela fonctionnait bien. Ensuite, j'ai supprimer la branche gh-pages et la reconstruire avec mon code HTML personnalisé. J'attends depuis au moins une heure maintenant
Jonathan de M.

1
veuillez essayer avec https. si cela fonctionne, après peu de temps, il le fera avechttp
Rohit Suthar

1
l'astuce https a fonctionné pour moi d'une autre manière. J'ai tout droit et la page de configuration a indiqué que le site est publié, m'a donné la bonne URL. Cependant, il continue à donner 404. J'ai changé l'url en http, cela a fonctionné, puis https a fonctionné aussi. On dirait que le site http doit être accédé pour «l'activer» d'abord.
dracodoc

2
Pour moi, cela a commencé à fonctionner après 10-20 minutes. Cela prend du temps. Alors soyez patient.
MechaCode

Réponses:


182

Je n'avais qu'un seul commit avec tous mes fichiers. J'ai poussé un commit vide, actualisé la page et cela a fonctionné.

git commit --allow-empty -m "Trigger rebuild"
git push

Si cela ne fonctionne pas, comme @Hendrikto l'a souligné dans les commentaires, consultez la page d'état de Github et assurez-vous que les pages GitHub sont opérationnelles.


2
J'utilisais le paquet npm angular-cli-ghpages et ce que j'ai fait a été d'ajouter un espace à mon fichier index.html, de relancer la commande "npx ngh" qui a poussé un nouveau commit pour que j'obtienne les mêmes résultats glorieux. Merci, cela m'a laissé perplexe et votre réponse m'a inspiré à le faire.
Patrick Graham

si vous ne souhaitez pas utiliser la ligne de commande, vous pouvez simplement modifier votre direclty README.md à partir de l'interface Web.
Christophe Le Besnerais

2
Cela peut également être un problème avec Github lui-même. Cette page vous indique l'état de Github. J'ai eu le même problème et aucune solution n'a fonctionné. La page d'état indiquait «performances dégradées», et je devais juste attendre que les serveurs soient à nouveau pleinement fonctionnels.
Hendrikto

Bon point @Hendrikto, j'ai ajouté une référence à votre commentaire dans la réponse.
Nycen le

77

Dans mon cas, j'avais des dossiers dont les noms commençaient par _(comme _csset _js), que GH Pages ignore selon les règles de traitement de Jekyll. Si vous n'utilisez pas Jekyll, la solution de contournement consiste à placer un fichier nommé .nojekylldans le répertoire racine.


4
.nojekyll est un must si vous n'utilisez pas Jekyll, docs ici: github.com/blog/572-bypassing-jekyll-on-github-pages
Claudiu Constantin

2
Merci pour cela, j'ai envoyé un e-mail à github et leur ai demandé de mettre à jour leur guide sur pages.github.com (qui ne mentionne pas le fichier .nojekyll)
sunyata

1
Merci! Il était nécessaire pour l'application Vue, dommage qu'il ne soit pas mentionné dans le guide de déploiement vue-cli.
Ondřej Ševčík

cela l'a corrigé pour moi. Mon site utilisateur fonctionnait à l'origine sans lui mais a cessé de fonctionner. Vous pouvez simplement ajouter un fichier en ligne et le valider là aussi. Je l'ai fait, rafraîchi et cela a fonctionné instantanément.
bot19

@Supuhstar merci mon frère. vous sauvez ma vie)
voronovam

73

J'ai fait toutes les astuces ici sur My Fork pour corriger la page 404 sur Github Page mais elle a continué à fonctionner.

Finalement, mon navigateur a à peine gardé le cache de 10 minutes avant sa mise en ligne sur le Web.

Ajoutez simplement /index.htmlà la fin de l'URL, puis il est apparu et a résolu le cas.

https://username.github.io/index.html


1
Cela a fonctionné pour moi. J'ai créé le site en suivant les instructions de la page principale des pages GitHub, donc c'est un peu décevant qu'il ne fonctionne pas immédiatement.
CGK

1
Merci! J'ai eu le même problème. C'est bizarre que nous devions ajouter /index.html.
Raja Rao

1
J'ai fait un soft cache clear mais cela n'a pas fonctionné mais l'ajout de /index.html a fonctionné. Merci
Prince Tegaton

1
Cela a fonctionné pour moi aussi mais cela ne m'est jamais arrivé auparavant, j'ai actuellement plusieurs pages en cours d'exécution à la fois sur username.github.io et username.github.io/ < additional-page > et je n'ai jamais eu besoin d'ajouter un index.html
Sanchit Batra

J'ai dû ouvrir la console de développement et forcer index.html dans l'url. Merci o /
poids lourd le

51

Il y a quatre mois, j'ai contacté le support et ils m'ont dit que c'était un problème de leur côté, ils l'ont temporairement corrigé (pour le commit actuel).

Aujourd'hui j'ai réessayé

  1. J'ai supprimé la branche gh-pages sur github

    git push origin --delete gh-pages

  2. J'ai supprimé la branche gh-pages sur local

    git branch -D gh-pages

  3. J'ai réinitialisé git

    git init

  4. J'ai recréé la succursale en local

    git branch gh-pages

  5. J'ai poussé la branche gh-pages vers github

    git push origin gh-pages

Fonctionne bien, je peux enfin mettre à jour mes fichiers sur la page.


32
Apparemment, vous n'avez même pas besoin de supprimer votre succursale locale. Juste git checkout gh-pages ; git push origin --delete gh-pages ; git push originet vous avez terminé.
intéressant ici

4
Supprimer la branche distante et repousser la mienne a résolu le problème. La page était visible après une minute.
Kulbi

Je pense que c'est
supposé

Il suffit de supprimer la branche d'origine ("gh-pages") et de tout refaire. A travaillé pour moi!
wle8300

34

Si vous ne l'avez pas déjà fait, choisissez un thème Jekyll dans l'onglet des paramètres de vos pages GitHub. Apparemment, cela est nécessaire même si vous n'utilisez pas Jekyll pour votre site Pages.

Capture d'écran des paramètres GitHub


8
J'obtenais 404 Not Found et après avoir essayé les dix-huit autres solutions suggérées dans les réponses ici, j'ai documenté mes tentatives dans une question en double: HTML très simple résultant en 404 Not Found sur les pages GitHub . La 19e réponse de Chris a été celle qui a résolu le problème pour moi. GitHub Pages est un excellent service, c'est dommage que la documentation soit si pauvre.
dumbledad

3
Le simple choix d'un schéma ne suffit toujours pas, vous devez également créer un nouveau commit sur la gh-pagesbranche pour déclencher une mise à jour par la suite!
sschuberth

20

J'ai eu le même problème après avoir forgé un repo avec une gh-pagessuccursale. J'ai pu corriger en poussant simplement un nouveau commit (juste un espace index.html) dans la gh-pagesbranche de mon fork .


J'ai mis un espace dans "index.html", validé et poussé les changements. Rien ne s'est passé. Suppression des espaces blancs du nom de fichier, validés et poussés à nouveau et cela a fonctionné! Merci.
Nahiyan

notez également que les pages github utilisent une petite fenêtre de mise en cache (10 minutes au moment de l'écriture :) Cache-Control:max-age=600. vous devrez donc peut-être attendre l'expiration de cette fenêtre de cache ou forcer l'actualisation de votre navigateur.
Clay

1
Pourquoi jouer avec les espaces? Poussez simplement un commit vide avec --allow-empty.
Hendrikto

18

Dans mon cas le 8 / août / 2017

  1. si votre page utilisateur est https://github.com/mgravell , le nom de votre dépôt doit être mgravell.github.io
  2. sous root, créez un fichier index.html

  3. sous root, créez un dossier docs, créez un fichier CNAMEsous docs(note: AUCUNE extension comme .txt, assurez-vous que votre système de fichiers affiche l'extension)

  4. gh-pagesla branche est facultative, la masterbranche est suffisante

plus : consultez la documentation officielle ici: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/


1
Ça faisait! L'ajout d'un dossier docs vide et d'un fichier CNAME vide (sans extension), a fait l'affaire !!
Jose A

CNAME manquant ici aussi :)
Frexuz

Le fichier CNAME doit-il être vide? Sinon, que devrait-il y avoir?
dumbledad

Le fichier vide @dumbledad ira bien
Intemporel

15

Attendez environ dix minutes à une heure. Si cela ne fonctionne toujours pas, contactez github. C'est généralement le problème à leur fin. Mais si vous êtes pressé, vous pouvez essayer d'ouvrir en ajoutant "?" point d'interrogation à la fin de l'URL. Cela force la requête à rechercher la ressource. Comme ça:

http://roine.github.com/p1?


14

Mes pages ont également continué à fonctionner. Contacté le support, et ils ont souligné que l'URL est sensible à la casse; résolu mon problème.


2
J'ai déjà essayé les deux, avec et sans capital, avant de contacter le support
Jonathan de M.

3

Si vous êtes sûr que votre structure est correcte, il suffit de pousser un commit vide ou de mettre à jour le fichier index.html avec un peu d'espace, cela fonctionne!



2

dans mon cas, je devais accéder aux paramètres du projet et activer les pages github. La valeur par défaut est désactivée



2

Dans mon cas, toutes les suggestions ci-dessus étaient correctes. La plupart des pages fonctionnaient, sauf quelques-unes qui renvoyaient 404 même si les fichiers de démarque sont là et ils semblaient corrects. Voici ce qui l'a corrigé pour moi sur ces pages:

  • Sur une page, il y avait quelques caractères spéciaux qui ne font pas partie UTF-8et je pense que c'est pourquoi les pages GitHub n'ont pas pu les rendre. Mettre à jour / supprimer ces caractères et pousser un nouveau commit a corrigé le problème.
  • Sur une autre page, j'ai trouvé qu'il y avait des apostrophes 'entourant le titre, je les ai supprimées et le contenu de la page a commencé à s'afficher correctement

2

J'ai eu ce problème exact avec les typedocs. Le fichier README.md a fonctionné mais aucun des documents générés par mes chaînes de documents ne s'affiche, je viens de recevoir un écran 404 pages Github.

Pour résoudre ce problème, placez simplement un fichier vide dans votre répertoire / docs (ou partout où vous générez vos documents) et appelez-le .nojekyll

Pour confirmer, votre structure de fichiers devrait maintenant ressembler à:

./docs/.nojekyll  # plus all your generated docs

Poussez ceci vers votre dépôt Github distant et vos liens, etc. devraient fonctionner maintenant.

Assurez-vous également d'avoir sélectionné dans vos paramètres Github:

Settings -> Github Pages -> Source -> master brach /docs folder

En fonction de votre framework doc, vous devrez probablement recréer ce fichier chaque fois que vous mettez à jour vos documents, voici un exemple d'utilisation de typedocs et de création du fichier .nojekyll à chaque fois dans un fichier package.json:

# package.json

      "scripts": {
        "typedoc": "typedoc --out docs src && touch docs/.nojekyll"
      },

1

J'ai lié mon domaine avant que ce problème n'apparaisse. J'ai commis et poussé la branche gh-pages et cela a résolu mon problème. De nouveaux commits forcent jekyll à reconstruire vos pages.


1

Dans mon cas, l'URL était assez longue. Donc, je suppose qu'il y a une limite. Je l'ai mis dans mon sous-domaine personnalisé et cela a fonctionné.


1

Si vous avez vu 404 même si tout semble correct, essayez de changer https / http.

L'URL de la question d'origine est incorrecte, vous pouvez généralement vérifier les paramètres du dépôt et trouver l'URL correcte pour le site généré.

Cependant, tout est configuré correctement, et la page de configuration dit qu'elle est publiée, puis j'ai toujours vu 404.

Merci pour le commentaire de @Rohit Suthar (même si ce commentaire devait utiliser https), j'ai changé l'url en http et cela a fonctionné, puis https a également fonctionné.


1

Sur un dépôt privé, lorsque j'ai ajouté et poussé pour la première fois ma branche gh-pages vers github, les paramètres des pages github ont automatiquement changé pour indiquer que la branche gh-pages serait publiée, mais il n'y a pas de barre verte ou bleue avec le github.io url et aucune option de domaine personnalisé.

Ce n'est que lorsque j'ai basculé la source sur master et que j'ai rapidement basculé la source vers gh-pages qu'elle a été mise à jour avec la barre verte qui contient l'URL publiée.


1
CA aide. Mon projet était privé au début et dans cet état, j'ai poussé le projet sur les pages Github et j'obtiens 404 (ofc). Après être passé de gh-pagesà master, puis de masterà, gh-pagestout allait bien et l'application a commencé à fonctionner.
Zrna

1

Une autre variante de cette erreur:

J'ai créé ma première page Github après un tutoriel mais a donné le fichier readme.mda - de mon point de vue - nom plus significatif: welcome.md.

C'était une erreur fatale:

Nous utiliserons votre fichier README comme index du site si vous n'avez pas de index.md(ou index.html), pas différent de lorsque vous naviguez vers un référentiel sur GitHub.

de la publication avec des pages GitHub, maintenant aussi simple que 1, 2, 3

J'ai ensuite pu accéder à la page de mon site Web en utilisant le published atlien spécifié sous Repository/ Settings/ GitHub Pagessuivi de welcome.htmlou plus court welcome.


1

Pour une raison quelconque, le déploiement des pages GitHub a cessé de fonctionner aujourd'hui (2020-mai-05). Auparavant, je n'avais pas de html, seulement des fichiers md. J'ai essayé de créer un index.html et il a publié la page immédiatement. Après la suppression de index.html, la publication continue de fonctionner.


1

Dans mon cas, dans react était nécessaire de sélectionner la branche gh-pages:

entrez la description de l'image ici


0

Allez dans la section des paramètres de votre référentiel et choisissez la branche principale dans la section Source et cliquez sur le bouton Enregistrer après cela, actualisez la page et vous pourrez voir le lien de votre page !.


0

J'ai également rencontré ce problème (404) et la cause principale était que mon fichier était nommé INDEX.md. Je développais sous Windows et mon site Jekyll local fonctionnait (puisque Windows traite les noms de fichiers insensibles à la casse par défaut). Une fois poussé vers Github, cela n'a pas fonctionné. Une fois que j'ai renommé le INDEX.mden index.md, les choses ont bien fonctionné.


0

Encore un autre scénario:

  • en utilisant une page d'organisation (pas une page de projet) qui a un référentiel nommé <orgname>.github.io
  • documents source comme balisage dans la masterbranche (asciidoc)
  • Travis CI extrait les fichiers doc source masteret pousse les fichiers html générés vers la gh-pagesbranche

La gh-pagesbranche est mise à jour avec les pages html générées. L' Environmentonglet GitHub fournit le lien vers la page d'organisation. En cliquant dessus, vous obtenez un fichier 404.

Selon https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

Les pages utilisateur et organisation qui ont ce type de nom de référentiel ne sont publiées qu'à partir de la masterbranche

Si je comprends bien, les pages GitHub ne seront pas publiées à partir de la gh-pagesbranche si vous créez un site Userou Organizationplutôt qu'un Projectsite.

J'ai renommé mon repo pour en faire un Projectsite plutôt qu'un Organizationsite, puis la gh-pagesbranche a été publiée comme prévu.


0

J'ai eu le même problème. Problème très étrange. Mon code HTML comportait un espace après le titre

> <title>
> 
> <script>

Correction, après avoir supprimé l'espace

> <title>
> <script>

0

De plus, les pages GitHub ne prennent actuellement pas en charge Git LFS . En tant que tel, si vous avez des images (ou d'autres actifs binaires) dans des pages GitHub validées avec Git LFS, vous obtiendrez 404 non trouvés pour ces fichiers.

Ce sera assez courant pour la documentation générée avec Doxygen ou un outil similaire.

La solution dans ce cas est simplement de ne pas valider ces fichiers avec Git LFS.


0

Dans mon cas, mon référentiel était privé. Rendez le référentiel public et recommencez toutes les étapes.


0

J'ai également fait face à ce problème, mes pages obtenant 404. Et puis j'ai ajouté README.md sur mon référentiel, et le 404 avait disparu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.