You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi单类型(singleType)路由返回404问题求助

解决Strapi单类型(singleType)路由缺失及404问题

针对你遇到的Strapi单类型default_currency后台可见但路由不存在、访问端点404的问题,按以下步骤排查:

  • 检查路由文件配置
    单类型的路由路径应为单数格式,确保src/api/default-currency/routes/default-currency.js的配置正确,示例:

    module.exports = {
      routes: [
        {
          method: 'GET',
          path: '/default-currency', // 单数路径,对应schema的singularName
          handler: 'default-currency.findOne',
          config: {
            policies: [],
          },
        },
      ],
    };
    

    注意路径和handler的命名需与schema的singularName(default-currency)完全匹配,不能使用下划线格式。

  • 验证控制器与服务的导出匹配
    控制器文件src/api/default-currency/controllers/default-currency.js需正确导出对应方法:

    module.exports = {
      async findOne(ctx) {
        const entity = await strapi.service('api::default-currency.default-currency').findOne();
        ctx.body = entity;
      },
    };
    

    服务文件src/api/default-currency/services/default-currency.js的方法需对应控制器调用:

    module.exports = {
      async findOne() {
        return await strapi.db.query('api::default-currency.default-currency').findOne();
      },
    };
    
  • 重启Strapi服务
    手动创建API文件后,Strapi的自动重载可能未检测到新配置,必须重启服务才能加载新的路由、控制器和服务。

  • 确认权限配置
    进入后台设置 -> 角色与权限,检查目标角色(如Public)是否开启了default-currency的对应权限(如findOne),虽然404通常不是权限问题,但权限未开启可能导致间接访问失败。

  • 核对schema命名一致性
    确保schema中的singularName为default-currency,且所有API文件(路由、控制器、服务)的命名和内部引用均使用该kebab-case格式,避免下划线或驼峰格式导致的匹配失败。

内容的提问来源于stack exchange,提问作者howard wolowitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:12:24