<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
相关产品推荐
相关产品推荐

