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

Umbraco 10站点Logo仅显示在首页,如何实现全站显示?

解决站点Logo仅在首页显示的问题

问题出在你当前的代码是从当前页面节点读取siteLogo字段,但该字段仅在首页节点配置,其他页面节点没有这个字段,导致非首页页面无法读取到Logo值,自然不会渲染。

解决方法是直接从首页(根节点)读取siteLogo字段,同时确保代码放在所有页面共用的布局文件中:

修改后的代码示例

@{
    // 获取根节点(首页)
    var homePage = Model.Root();
    var siteLogo = homePage.Value<IPublishedContent>("siteLogo");
    if (siteLogo != null)
    {
        <img src="@siteLogo.Url()" class="navbar-brand logo">
    }
}

备选写法(适配Umbraco不同版本)

如果上述方法不生效,可以尝试通过根节点集合获取首页:

@{
    var homePage = Umbraco.ContentAtRoot().FirstOrDefault();
    if (homePage != null)
    {
        var siteLogo = homePage.Value<IPublishedContent>("siteLogo");
        if (siteLogo != null)
        {
            <img src="@siteLogo.Url()" class="navbar-brand logo">
        }
    }
}

额外注意事项

  • 确保这段代码放置在所有页面共用的布局文件(如_Layout.cshtml)的导航栏区域,而非仅首页视图中,这样所有页面加载时都会执行这段代码。
  • 确认首页节点确实配置了siteLogo字段,且字段别名与代码中的"siteLogo"完全一致(Umbraco字段别名区分大小写)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:52:07