web-dev-qa-db-fra.com

Puis-je avoir mes pages GitHub index.html dans un sous-dossier du référentiel?

J'essaie d'utiliser des pages GitHub pour héberger un site Doxygen. Idéalement, j'aimerais pouvoir pousser les fichiers et répertoires générés vers GitHub sans avoir à les modifier du tout.

Cela signifie cependant que mon index.html se trouve dans un sous-dossier du référentiel et que GitHub Pages ne le récupère pas (j'obtiens un 404 lorsque j'essaie d'accéder au site Pages). Existe-t-il un moyen pour que GitHub reconnaisse ce index.html lorsqu'il se trouve dans un sous-dossier?

C'est un site de projet.

35
false_azure

Créez un index.html factice à la racine et mettez-le dans votre en-tête:

<meta http-equiv="refresh" content="0; url=https://repo.github.io/folder/index.html">

Assurez-vous de modifier l'URL de destination. Cela redirigera instantanément de index.html vers votre dossier/index.html.

44
David Jacquel

Peut-être que vous voulez pousser un sous-arbre. Par exemple, supposons que vous ayez le build/dist répertoire et là le site Doxygen est construit.

Après la construction, assurez-vous de valider toutes les modifications dans ce dossier et procédez comme suit.

git subtree Push --prefix build/dist Origin gh-pages

Il est important que vous n'ayez rien sur le gh-pages branche, locale ou d'origine.

tout crédit à: https://Gist.github.com/cobyism/473049

Au départ, j'ai aussi pensé à une redirection. Mais les redirections donnent l'impression que le code sent, même les redirections http. Bien que parfois inévitable, voici une solution plus propre, probablement ce que vous cherchiez.

12
Agustín Amenabar

Vous avez maintenant la possibilité d'utiliser /docs dossier de la branche master comme racine de votre site Web de pages github.

8
Chen Pang

La réponse de David Jacquel est géniale.

Mais si vous essayez de diffuser l'intégralité de votre blog personnel SPA à partir de /dist ou /build dossier de pages github comme moi, il y a un beau hack sale par Raphael Pedicini: https://github.com/rafrex/spa-github-pages .

Il vous suggère de créer un proxy index.html page et personnalisé 404.html page. Si votre utilisateur saisit l'URL directe d'une sous-page, par exemple https://example.github.io/blog/ , le serveur de pages github servira 404.html avec des scripts qui transmettent l'URL comme un ensemble de paramètres à un proxy index.html, qui lance SPA.

Je ne dupliquerais pas son code ici, car il pourrait très bien changer avec le temps.

4
Boris Burkov

Pour utiliser Doxygen et gh-pages, tu dois:

  1. Créez le fichier .nojekyll à la racine de votre gh-pages branche
  2. Assurez-vous d'avoir supprimé .png, .html et similaires de votre .gitignore fichier
  3. Et enfin, créez le index.html fichier à la racine de votre projet:

    <!DOCTYPE HTML>
    <html lang="en-US">
        <head>
            <meta charset="UTF-8">
            <meta http-equiv="refresh" content="1;url=html/index.html">
            <title>Page Redirection</title>
        </head>
        <body>
            If you are not redirected automatically, 
            follow the <a href="html/index.html">link to the documentation</a>
        </body>
    </html>
    

Références:

  1. GitHub Pages (github.io) page générée par doxygen introuvable (404)
  2. Comment générer automatiquement la documentation doxygen à l'aide de Travis
  3. Déploiement automatique de la documentation Doxygen sur des pages gh avec Travis CI
  4. https://help.github.com/categories/github-pages-basics/
  5. Publiez la documentation de votre projet avec les pages GitHub
  6. Comment faire une page d'introduction avec Doxygen
3
user

essayez de transférer votre fichier index.html et toutes ses dépendances dans un nouveau référentiel, puis utilisez ce référentiel comme sous-module dans votre référentiel actuel. Actuellement, github-pages s'attend à trouver un fichier index.html à la racine de votre référentiel, ce qu'il ne peut pas.

par exemple. disons que votre dépôt actuel est "test". Vous créez un nouveau référentiel, par exemple "site Web", transférez votre fichier .html et d'autres fichiers requis vers le référentiel "site Web". Vous devez maintenant utiliser le référentiel "site Web" comme sous-module dans le référentiel "test".

Remarque: dans le schéma ci-dessus, vous n'avez qu'à utiliser le nom de branche 'gh-pages' dans votre référentiel 'site Web' tandis que 'test' peut toujours conserver la branche principale.

petit exemple de tutoriel sur sous-modules git

1
Ishan Khare