Directus部署至SSH服务器后所有API接口返回404错误求助
解决Directus部署后API接口404的问题
以下是针对性的排查和修复步骤:
检查集合权限与Slug
登录Directus后台,确认akeneoproducts集合的Slug和本地完全一致(注意大小写)。同时检查该集合的权限设置:- 若API不需要认证,给公共角色开启
读取权限; - 若需登录访问,确认对应用户角色的权限已正确配置。
本地正常但服务器异常时,大概率是集合结构未同步,可通过Directus数据迁移工具(或手动导出/导入集合配置)将本地的集合结构同步到服务器数据库。
- 若API不需要认证,给公共角色开启
核对环境变量配置
检查服务器上Directus的.env文件,确保以下关键变量配置正确:PUBLIC_URL=http://platform.groep-e.be:8055API_URL=http://platform.groep-e.be:8055- 若设置了
API_PATH(比如API_PATH=/api),API请求路径需加上前缀,即curl http://platform.groep-e.be:8055/api/akeneoproducts,否则会出现404。
配置修改后重启Directus服务。
确认路由重写规则(若使用反向代理)
如果通过Nginx等反向代理访问Directus,需配置正确的路由重写规则,让所有API请求转发到Directus入口文件。示例Nginx配置片段:location / { try_files $uri $uri/ /index.php$is_args$args; }若直接使用Directus自带的Node服务器启动,跳过此步骤,但需确认启动命令为
npx directus start而非仅启动静态文件服务。验证数据库连接与集合同步
检查服务器数据库是否与本地数据库结构一致:- 确认服务器数据库已正确导入本地的集合、字段配置;
- 执行
directus logs查看日志,排查是否存在数据库连接或初始化报错。
测试基础API端点
先测试Directus自带的基础API,比如curl http://platform.groep-e.be:8055/items/directus_users:- 若此请求也返回404,说明API路由整体未生效,需检查服务启动方式或环境变量;
- 若此请求正常,问题则集中在自定义集合
akeneoproducts的配置上。
内容的提问来源于stack exchange,提问作者Joy Dimitris
相关产品推荐
相关产品推荐

