web-dev-qa-db-ja.com

Netlifyにデプロイされたサイトにアクセスしようとすると「ページが見つかりません」

静的blogdownサイトを実行し、Netlifyに展開しています。 GitHubでファイルをソースし、Hugoがサイトを構築し、Netlifyがそれをデプロイします。

Netlifyはサイトがライブであることを報告します(ログは下部に表示されます)が、サイトを表示しようとすると、Netlifyエラーメッセージのみが表示されます。

ページが見つかりません

壊れたリンクをたどったか、このサイトに存在しないURLを入力したようです。

←私たちのサイトに戻る

理由は何ですか?


私のGitHubリポジトリ: https://github.com/taraskaduk/taraskaduk

サイトがあるべき私のURL: https://taraskaduk.com/

私のデプロイ設定:

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

Hugoバージョン(別のものを試しました)

HUGO_VERSION 0.37.1

私の最新の展開ログ:

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

修正されたようです。サンプルサイトで新しいレポジトリを作成し、サンプルサイトの一部を自分のパーツで置き換えて、破損するタイミングを確認しました。

そのため、サイトを再び正常にデプロイするには、config.tomlのこの部分を除外する必要がありました。

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

なぜかはわからない-常にそこにあり、サイトをローカルに構築したときは機能したが、publicフォルダーを.gitignoreに追加してhugoに構築させると動作したくなかったサイト。

それはなぜですか?

1
Taraas

免責事項:私はサポートチーム@ Netlifyで働いています

これらのようなことについては、Netlifyのサポートにいつでも連絡することができますが、ソースコードをデバッグするのではなく、ローカルとビルドプロセスの違いをデバッグすることしかできません。コメント作成者が提起したいくつかのベストプラクティスを拡大し、さらにデバッグするのに役立ついくつかの提案を提供します。これらは非自明です。

まず、提案されているように(@aosmithに感謝!)BaseURLを/に設定する必要があります-これはベストプラクティスであり、サイトがローカル( http:// localhost )だけでなくNetlifyでも動作できるようにします- http、https、 プレビューのデプロイ を介して、最後に他のホスティングプロバイダーで、プロキシされている間など。

第二に、_redirectsファイルだけでなく netlify.toml ですが、これも問題ではないと思います。

メインURLで404を取得する場合、/index.htmlがないことを意味します。その根本的な原因はわかりません(テーマが欠落しているとhugoがそれを愛しておらず、期待するコンテンツを作成できない可能性があると言えますが)。ただし、ビルドがパブリッシュフォルダー(public、あなたのケースとデフォルトのhugo config)でindex.htmlを作成しない理由を理解するための2つの良い方法があります:

  1. 私のスクリーンショットに示すように、展開ログページから成功した展開のコピーをダウンロードして、「私たちがどうなったのか」を確認できます。ここでの典型的な問題は、何も持たないことです(ビルドがpublic /に移動しなかった、または最終的にindex.htmlなしで終了するため、パスなしで404を正しく表示します)

  2. デバッグ手順に従って、ビルドイメージをローカルで実行できます。 https://github.com/netlify/build-image#testing-locally ビルド後は、まだビルドシェルにいるため、パブリッシュディレクトリの内容を確認できます。

screenshot indicating deploy download location

19
fool

Angular 8を使用している場合は、angular.jsonビルドoutputPathdist/{project-name}および古いバージョンを使用している場合、distである必要があります。これは、.angular-cli.jsonから読み取ることができるoutDirの値です。

1
Dejazmach

この問題に直面しました。私の解決策は、netlify.tomlファイル内のpublish宣言の正しいビルドパスを設定することでした。新しいnetlify自動展開プロセスは、このファイルを使用してリポジトリからプロジェクトを展開します。

0
bir_ham