5

我有一个问题,我的 API 中的所有路由都返回404 Not found。我遵循了Strapi/strapi-docker 的从 Docker Hub 拉取部分。

除了运行图像之外,我所做的是创建一个名为post包含三个字段的新内容类型。如果我尝试GET /post(添加所有帖子)我会收到未经授权的响应错误。这是现阶段的预期。在我检查角色和权限以允许公共角色使用 find 和 findOne 路由后,即使添加了数据,我也会收到 404 Not found 响应错误。

开发服务器不使用任何前缀。

postfind 和 findOne 的路线如下所示:

{
  "routes": [
    {
    "method": "GET",
    "path": "/post",
    "handler": "Post.find",
    "config": {
      "policies": []
    }
  },
  {
    "method": "GET",
    "path": "/post/:_id",
    "handler": "Post.findOne",
    "config": {
      "policies": []
    }
  }
}

Strapi 界面中没有太多可供选择的选项,所以我不确定还有什么可以尝试的。我已经尝试了几个其他的strapi安装。不确定这是否会搞砸,但我隐约记得之前尝试过 strapi/strapi-docker 并让它工作。

4

1 回答 1

3

我多次偶然发现这个问题,最简单的答案通常是:

你发表过你的任何帖子吗?

Strapi 有一个发布子系统,通常在创建任何集合、单一类型或组件时打开。 在此处输入图像描述

因此,当您创建任何已创建类型的任何内容时,数据将保存为草稿并且不公开。

这是我的链接集合类型。它已保存,但未发布。

在此处输入图像描述

因此,如果您尝试测试端点,但您只有一个数据条目并且它设置为草稿,则不会显示任何数据。

在此处输入图像描述

没有数据!

在此处输入图像描述

未发表的单一类型的情况

在此处输入图像描述

这将返回 404!

在此处输入图像描述

发布,瞧...

在此处输入图像描述

这可能是 Strapi 向您发送 404 或仅发送空数组的原因之一!

于 2021-05-17T14:45:07.047 回答