20

我正在运行一个静态blogdown站点并将其部署在 Netlify 上。我在 GitHub 上获取文件,Hugo 构建站点,Netlify 部署它。

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

找不到网页

您似乎访问了一个损坏的链接或输入了该站点上不存在的 URL。

← 返回我们的网站

可能是什么原因?


我的 GitHub 仓库:https ://github.com/taraskaduk/taraskaduk

我的网址应该是: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_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
4

12 回答 12

38

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

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

/* /index.html 200

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

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

于 2020-09-04T09:06:06.007 回答
31

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

始终允许就此类问题联系 Netlify 支持,尽管我们只能帮助您调试我们的构建过程与您本地的不同之处,而不是调试您的源代码。让我扩展评论者提出的一些最佳实践,并提供一些建议来帮助您进一步调试不明显的问题。

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

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

当您在主 URL 上收到 404 时,这意味着您没有 /index.html 。根本原因是什么,我不知道(尽管我可以说当您的主题丢失并且可能无法生成您期望的内容时,hugo 不喜欢它)。有两种很好的方法可以弄清楚为什么我们的构建没有在您的发布文件夹中生成 index.html (public在您的情况下是默认的 hugo 配置):

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

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

指示部署下载位置的屏幕截图

于 2018-06-08T19:34:50.873 回答
4

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

config.toml所以为了让站点再次正常部署,必须排除这部分:

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

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

任何想法为什么会这样?

于 2018-06-08T20:46:36.620 回答
3

如果您使用的是 Angular 8,则需要通过读取 angular.json 构建来提供发布目录值outputPathdist/{project-name}如果您使用的是旧版本,则应该是可以从 .angular-cli 读取dist的值。 outDirjson。

于 2019-10-18T14:34:46.443 回答
2

对于 Angular,我遇到了这种情况,我发现以下方法可以工作:

touch src/_redirects

This file will contain the rule below. It indicates that all requests to the server should be redirected to index.html. We also add a HTTP status code option at the end to indicate that these redirects should return a 200 status. By default, a 301 status is returned.

/*  /index.html 200

The last thing we have to do is add the below option in our angular.json und er projects > {your_project_name} > architect > options > assets. Include it in the assets array:

{
  "glob": "_redirects",
  "input": "src",
  "output": "/"
}

来自https://www.smashingmagazine.com/2020/10/angular-feedback-netlify-forms-edge/

于 2020-11-15T00:46:43.893 回答
2

在根目录中创建 index.html 并使用以下代码指向 public 文件夹中的索引文件

<meta http-equiv="Refresh" content="2; url=public/index.html" />

于 2021-11-09T15:49:17.150 回答
1

面临这个问题。我的解决方案是设置正确的构建路径以在netlify.toml文件中发布声明。新的 netlify 自动部署过程使用此文件从存储库部署项目。

于 2019-10-30T22:38:33.403 回答
1

Angular 8 和现在的 Angular 9 在 dist/{project name} 中发布,这是要键入的文件夹名称,而不仅仅是像以前版本中的 dist。如果您仅指定 dist,它将在错误的目录中查找 index.html,结果将是“找不到页面”。

于 2020-02-22T20:20:45.123 回答
0

将您的主 HTML 文件命名为 index.html 而不是任何其他名称。

于 2020-06-28T19:47:46.413 回答
0

在此处输入图像描述

我确保“发布目录”和构建文件夹的名称相同。然后我推送了上面@Adwaith 建议的更改。非常感谢@Adwaith,您的意见是救命稻草。

于 2021-01-26T13:16:57.347 回答
0

就我而言,我有(vue3 应用程序)上传整个构建目录(dist/)而不仅仅是文件。这对我有用

于 2021-09-19T11:38:01.647 回答
0
title: 'Tezster Dart',
  tagline: 'A flutter package which provides the functionalities to play around with tezos dApps',
  url: 'https://site-name.netlify.app',
  baseUrl: '/',
  onBrokenLinks: 'throw',
  onBrokenMarkdownLinks: 'warn',
  favicon: 'img/favicon.ico',
  organizationName: 'Tezsure', // Usually your GitHub org/user name.
  projectName: 'Tezster_dart', // Usually your repo name.

如果您尚未更新 docs/docusaurus.config.js 中的 url,这可能是个问题。通过添加修复它 url: 'https://site-name.netlify.app',并确保它不以/. 就我而言,它最终不起作用/

于 2021-09-20T04:21:59.090 回答