尝试访问Netlify上部署的站点时"找不到页面"

Tar*_*aas 6 r hugo netlify blogdown

我正在运行静态blogdown站点并将其部署在Netlify上.我在GitHub上源文件,Hugo构建网站,Netlify部署它.

Netlify报告该站点是活动的(部署日志包含在底部),但是当我尝试查看我的站点时,我看到的只是Netlify错误消息:

网页未找到

您似乎已经关注了断开的链接或输入了此网站上不存在的网址.

←返回我们的网站

可能是什么原因?


我的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
Run Code Online (Sandbox Code Playgroud)

雨果版(我试过不同的版本)

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
Run Code Online (Sandbox Code Playgroud)

小智 20

如果您在直接浏览到特定路径时看到“未找到”错误,例如:https://yourdomain.com/something,这可能会有所帮助(ReactJS):

在您的public文件夹(包含 index.html 的文件夹)中创建一个_redirects没有扩展名的文件。然后,在里面输入以下内容:

/* /index.html 200

现在保存、提交、推送和发布。:)

“未找到”的原因是因为,当使用路由器时,例如:React Router 它处理所有路由,但是当您直接转到端点时,netlify 必须知道将您重定向到哪里。这就是我们在_redirects文件中指定的内容。

  • 救生员! (2认同)

foo*_*ool 19

免责声明:我在支持团队@ Netlify工作

它总是被允许接触Netlify支持这些事情,虽然我们只能真正帮助你调试我们的构建过程与本地的不同,而不是调试你的源代码.让我扩展评论者提出的一些最佳实践,并提供一些建议,以帮助您进一步调试,这是非显而易见的.

首先,正如所建议的那样(感谢@aosmith!)BaseURL应该设置为/ - 这是一种最佳实践,它将允许您的站点在本地(http:// localhost)工作,但也可以在Netlify上工作 - 通过http,https,部署预览,最后在其他托管服务提供商,代理等,等等.做它:)

其次,您不仅可以在_redirects文件中重定向,还可以重定向netlify.toml,但我也不认为这是问题所在.

当您在主网址上获得404时,表示您没有/index.html.造成这种情况的根本原因是,我无法分辨(虽然我可以说当你的主题缺失并且可能无法产生你期望的内容时,hugo不喜欢它).有两种很好的方法可以找出为什么我们的构建不会在您的发布文件夹中生成index.html(public在您的情况下和默认的hugo配置中):

  1. 您可以从我的屏幕截图中显示的部署日志页面下载任何成功部署的副本,并查看"我们最终得到了什么".这里的典型问题是我们什么都没有(你的构建没有公开/或者你最终没有index.html - 所以我们正确显示没有路径的404)

  2. 您可以按照调试说明在本地运行我们的构建映像:https: //github.com/netlify/build-image#testing-locally.构建之后,您仍然在构建shell中,可以查看发布目录中的内容.

截图指示部署下载位置


Tar*_*aas 5

看来我已经修好了。我使用示例站点创建了一个新的存储库,并开始用我的部分替换示例站点的部分内容,以查看它何时损坏。

因此必须排除这部分config.toml才能使站点再次正常部署:

[permalinks]
    post = "/:year/:month/:day/:slug/" 
Run Code Online (Sandbox Code Playgroud)

public我不知道为什么 - 它一直在那里,当我在本地构建网站时它可以工作,但一旦我将文件夹添加到,它就不想工作.gitignore并让 Hugo 构建我的网站

有什么想法吗?

  • 很高兴你想出来了!这看起来像[这个问题](https://github.com/rstudio/blogdown/issues/297)。我认为解释是最后的评论。 (2认同)