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

<account-logo>标签助手生成无效HTML,求ASP.NET Zero 13.2临时方案

ASP.NET Zero 13.2 账户Logo URL未转义导致404的临时解决方案

以下是几个可行的临时修复方案:

  • 方案一:前端JS修正URL
    在页面加载完成后,通过JavaScript修正生成的img标签src属性,将未转义的&t=替换为合法的参数分隔符:

    document.addEventListener('DOMContentLoaded', function() {
        const accountLogo = document.querySelector('img.h-40px[src*="&t="]');
        if (accountLogo) {
            // 将&t=替换为?t=,使时间戳成为合法的查询参数
            accountLogo.src = accountLogo.src.replace('&t=', '?t=');
        }
    });
    
  • 方案二:手动编写img标签替代组件
    绕过<vc:account-logo>组件,直接根据深色/浅色模式手动渲染img标签,完全控制URL生成逻辑:

    <img 
        src="/Common/Images/my-logo-on-@(theme.BaseSettings.Layout.DarkMode ? "dark":"light").png?t=@(DateTime.Now.Ticks)" 
        alt="Account Logo" 
        class="h-40px"
    >
    

    这里直接用?t=拼接时间戳,确保URL格式符合规范,同时保留原有的主题切换逻辑。

  • 方案三:修改视图组件源码(若有权限)
    找到AccountLogoViewComponent对应的视图文件(通常在Views/Shared/Components/AccountLogo/Default.cshtml),修正URL拼接逻辑:

    // 原错误拼接方式
    // var logoSrc = $"/Common/Images/my-logo-on-{Model.Skin}.png&t={DateTime.Now.Ticks}";
    
    // 修改为正确的参数拼接
    var logoSrc = Url.Content($"/Common/Images/my-logo-on-{Model.Skin}.png?t={DateTime.Now.Ticks}");
    

    使用Url.Content方法可以确保URL被正确处理,同时用?作为第一个参数的分隔符,避免未转义的&导致的404问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:42:05