web-dev-qa-db-fra.com

"Page non trouvée" lorsque vous essayez d'accéder à un site déployé sur Netlify

J'exécute un site statique blogdown et je le déploie sur Netlify. Je source des fichiers sur GitHub, Hugo construit le site et Netlify le déploie.

Netlify signale que le site est en ligne (journal de déploiement joint en bas), mais lorsque j'essaie d'afficher mon site, tout ce que je vois est un message d'erreur Netlify:

Page non trouvée

Il semble que vous ayez suivi un lien brisé ou saisi une URL qui n'existe pas sur ce site.

← Retour sur notre site

Quelle pourrait être la raison?


Mon dépôt GitHub: https://github.com/taraskaduk/taraskaduk

Mon URL où le site devrait être: https://taraskaduk.com/

Mes paramètres de déploiement:

Repository: https://github.com/taraskaduk/taraskaduk
Build command: hugo
Publish directory: public
Production branch: master
Branch deploys: Deploy only the production branch and its deploy previews
Public deploy logs: Logs are public

Version Hugo (j'en ai essayé différentes)

HUGO_VERSION 0.37.1

Mon dernier journal de déploiement:

9:56:27 PM: Build ready to start
9:56:28 PM: Fetching cached dependencies
9:56:29 PM: Starting to download cache of 172.4MB
9:56:30 PM: Finished downloading cache in 1.74774892s
9:56:30 PM: Starting to extract cache
9:56:33 PM: Finished extracting cache in 2.59393707s
9:56:33 PM: Finished fetching cache in 4.428746301s
9:56:33 PM: Starting to prepare the repo for build
9:56:33 PM: Preparing Git Reference refs/heads/master
9:56:34 PM: Starting build script
9:56:34 PM: Installing dependencies
9:56:35 PM: Started restoring cached node version
9:56:37 PM: Finished restoring cached node version
9:56:37 PM: v8.11.2 is already installed.
9:56:38 PM: Now using node v8.11.2 (npm v5.6.0)
9:56:38 PM: Attempting Ruby version 2.3.6, read from environment
9:56:39 PM: Using Ruby version 2.3.6
9:56:39 PM: Using PHP version 5.6
9:56:39 PM: Installing Hugo 0.37.1
9:56:39 PM: Started restoring cached go cache
9:56:39 PM: Finished restoring cached go cache
9:56:39 PM: unset GOOS;
9:56:39 PM: unset GOARCH;
9:56:39 PM: export GOROOT='/opt/buildhome/.gimme/versions/go1.10.linux.AMD64';
9:56:39 PM: export PATH="/opt/buildhome/.gimme/versions/go1.10.linux.AMD64/bin:${PATH}";
9:56:39 PM: go version >&2;
9:56:39 PM: export GIMME_ENV='/opt/buildhome/.gimme/env/go1.10.linux.AMD64.env';
9:56:39 PM: go version go1.10 linux/AMD64
9:56:39 PM: Installing missing commands
9:56:40 PM: Verify run directory
9:56:40 PM: Executing user command: hugo
9:56:40 PM: Building sites …
9:56:40 PM: 
9:56:40 PM:                    | EN
9:56:40 PM: +------------------+----+
9:56:40 PM:   Pages            |  6
9:56:40 PM:   Paginator pages  |  0
9:56:40 PM:   Non-page files   | 49
9:56:40 PM:   Static files     | 39
9:56:40 PM:   Processed images |  0
9:56:40 PM:   Aliases          |  4
9:56:40 PM:   Sitemaps         |  1
9:56:40 PM:   Cleaned          |  0
9:56:40 PM: Total in 522 ms
9:56:40 PM: Caching artifacts
9:56:40 PM: Started saving pip cache
9:56:40 PM: Finished saving pip cache
9:56:40 PM: Started saving emacs cask dependencies
9:56:40 PM: Finished saving emacs cask dependencies
9:56:40 PM: Started saving maven dependencies
9:56:40 PM: Finished saving maven dependencies
9:56:40 PM: Started saving boot dependencies
9:56:40 PM: Finished saving boot dependencies
9:56:40 PM: Started saving go dependencies
9:56:40 PM: Finished saving go dependencies
9:56:40 PM: Build script success
9:56:40 PM: Starting to deploy site from 'public'
9:56:41 PM: Starting post processing
9:56:41 PM: Post processing done
9:56:41 PM: Site is live
6
Taraas

On dirait que je l'ai réparé. J'ai créé un nouveau référentiel avec un exemple de site et j'ai commencé à remplacer des parties de l'exemple de site par mes parties pour voir quand il se casse.

Cette partie de config.toml a dû être exclu pour que le site se déploie à nouveau normalement:

[permalinks]
    post = "/:year/:month/:day/:slug/" 

Je ne sais pas pourquoi - il a toujours été là et cela a fonctionné lorsque j'ai construit mon site localement, mais je ne voulais pas travailler une fois que j'avais ajouté le dossier public à .gitignore et laissez hugo construire mon site.

Des idées pourquoi est-ce?

1
Taraas

Avis de non-responsabilité: je travaille au sein de l'équipe d'assistance @ Netlify

Il est toujours permis de contacter le support Netlify sur des choses comme celles-ci, bien que nous ne puissions vraiment vous aider à déboguer ce qui est différent de notre processus de construction que votre local, plutôt que de déboguer votre code source. Permettez-moi de développer certaines des meilleures pratiques évoquées par les commentateurs et de vous fournir quelques suggestions pour vous aider à déboguer davantage qui ne sont pas évidentes.

Tout d'abord, comme suggéré (merci @aosmith!) BaseURL devrait être défini sur/- c'est une meilleure pratique et permettra à votre site de fonctionner localement ( http: // localhost ) mais aussi sur Netlify - via http, https, déployer les aperçus , et enfin sur d'autres hébergeurs, tout en étant proxy, etc etc. Just Do It :)

Deuxièmement, vous pourriez avoir des redirections non seulement dans un _redirects file mais aussi netlify.toml , mais je ne pense pas non plus que ce soit le problème ici.

Lorsque vous obtenez un 404 à votre URL principale, cela signifie que vous n'avez pas de /index.html. Quelle est la cause profonde de cela, je ne peux pas le dire (bien que je puisse dire que hugo ne l'aime pas lorsque votre thème est manquant et peut ne pas produire le contenu que vous attendez). Il existe deux bonnes façons de comprendre pourquoi notre build ne produit pas d'index.html dans votre dossier de publication (public, dans votre cas et configuration hugo par défaut):

  1. Vous pouvez télécharger une copie de tout déploiement réussi à partir de la page des journaux de déploiement, comme indiqué dans ma capture d'écran, et voir "ce que nous avons fini". Les problèmes typiques ici sont que nous n'avons rien (votre build n'est pas allé au public/ou que vous vous retrouvez sans index.html - donc nous montrons correctement un 404 sans chemin)

  2. Vous pouvez suivre les instructions de débogage pour exécuter notre image de build localement: https://github.com/netlify/build-image#testing-locally . Après la build, vous êtes toujours dans le shell de build et pouvez regarder ce qu'il y a dans votre répertoire de publication.

screenshot indicating deploy download location

19
fool

Si vous utilisez Angular 8, vous devez fournir la valeur du répertoire de publication en lisant la construction angular.json outputPath qui est dist/{project-name} et si vous utilisez des versions plus anciennes, ce devrait être dist qui est la valeur de outDir que vous pouvez lire depuis .angular-cli.json.

1
Dejazmach

Face à ce problème. Ma solution a été de définir le chemin de génération correct de la déclaration publier dans le fichier netlify.toml . Le nouveau processus de déploiement automatisé netlify utilise ce fichier pour déployer des projets à partir de référentiels.

0
bir_ham