Strapi Docker部署后API路由返回404 NotFound问题求助
解决Strapi Docker部署后API路由返回404的问题
我之前也碰到过几乎一模一样的问题,大概率是这几个常见原因导致的,一步步排查试试:
1. 检查API路由前缀
Strapi默认会给所有API路由加上/api前缀,所以你访问的/post其实应该是/api/post。直接访问/post自然会返回404,因为Strapi根本没有这个路由。
你可以在Strapi后台的Settings > API Tokens > Settings里确认路由前缀的配置,默认就是api,调整请求地址到GET /api/post应该就能正常返回数据了。
2. 确认内容类型创建后是否重启了容器
如果你是在运行中的Docker容器里创建的post内容类型,Strapi需要重启才能生成对应的API路由。Docker容器里的Strapi实例默认不会自动热重载路由变更(开发模式需额外配置热重载,生产模式默认无此功能)。
执行以下命令重启容器:
docker restart <你的strapi容器名或ID>
重启后再访问/api/post,应该就能看到路由生效了。
3. 核对角色权限的配置细节
虽然你说已经给Public角色开放了find和findOne权限,但再仔细检查一遍:
- 进入Settings > Roles & Permissions > Public
- 在Permissions板块找到
post内容类型,确认find和findOne的复选框确实被勾选 - 别忘点击页面底部的Save按钮(这步很容易被忽略!)
4. 验证内容类型的API访问开关
有时候创建内容类型时可能不小心关闭了API访问:
- 进入Content-Type Builder > post
- 点击Advanced Settings标签页
- 确认Enable API access选项处于勾选状态
- 保存后重启容器使配置生效
如果以上步骤都试过还是不行,可以查看Docker容器里的Strapi日志,看看有没有路由加载失败的相关报错:
docker logs <你的strapi容器名或ID>
日志里的报错信息能帮你更快定位问题根源。
内容的提问来源于stack exchange,提问作者Patrik Bäckström
相关产品推荐
相关产品推荐

