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

Umbraco v12自定义插件调用API出现404错误求助

Umbraco v12自定义仪表板API 404错误修复方案

针对自定义仪表板调用API返回404的问题,以下是具体排查和修复步骤:

1. 修正API请求路径

Umbraco v12后台API的标准路由前缀为/umbraco/backoffice/api/,你的前端请求路径缺少/umbraco前缀,导致路由匹配失败。

修改App_Plugins/MyPlugin/resources/myplugin.resource.js中的请求URL:

angular
    .module('umbraco.resources')
    .factory('MyPluginResource', function ($q, $http, umbRequestHelper) {
        return {
            get: function () {
                return umbRequestHelper.resourcePromise(
                    $http.get('/umbraco/backoffice/api/MyPlugin/GetTest'), // 修正此处路径
                    'Failed to fetch data'
                )
            }
        }
    })

2. 添加package.manifest配置文件

Umbraco需要通过package.manifest识别插件、加载前端资源并注册仪表板。在App_Plugins/MyPlugin/目录下创建该文件,内容如下:

{
  "dashboards": [
    {
      "alias": "MyPlugin.Dashboard",
      "view": "/App_Plugins/MyPlugin/views/myplugin.html",
      "sections": [ "content" ], // 指定仪表板显示的后台区域,可按需修改
      "weight": 100
    }
  ],
  "javascript": [
    "/App_Plugins/MyPlugin/resources/myplugin.resource.js",
    "/App_Plugins/MyPlugin/Controllers/myplugin.controller.js"
  ]
}

3. 优化API控制器代码

完善构造函数的依赖注入逻辑(避免潜在的依赖问题):

namespace MyPlugin.Controllers
{
    public class MyPluginController : UmbracoAuthorizedApiController
    {     
        private readonly UmbracoDatabase _database;

        public MyPluginController(UmbracoDatabase database)
        {
            _database = database;
        }

        [HttpGet]
        public dynamic GetTest()
        {
            dynamic settings = new ExpandoObject();
            settings.data = "Add your fetched data here";

            return settings;
        }
    }
}

4. 验证目录结构与编译状态

确保插件目录结构符合Umbraco规范:

App_Plugins/
└── MyPlugin/
    ├── Controllers/
    │   ├── MyPluginController.cs
    │   └── myplugin.controller.js
    ├── resources/
    │   └── myplugin.resource.js
    ├── views/
    │   └── myplugin.html
    └── package.manifest

同时确认项目已编译,API控制器的程序集已正确生成并被Umbraco扫描到。

测试步骤

  1. 重启Umbraco后台应用
  2. 清除浏览器缓存(避免旧资源干扰)
  3. 打开后台仪表板,查看控制台是否仍有404错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:13:38