CSS中引用Razor动态Logo url地址处理解决
来源:本站原创
点击数: 次
发布时间:2026年08月21日
@StringExtensionsHelper.ToUrl(this.Context.GetCurrentSite().LogoUrl) 只能在 Razor / cshtml / HTML 模板中执行,而 .css 文件是静态文件,不会解析 @ 代码。
所以必须把 动态 URL 放到 HTML 或 Razor 里生成,然后再给 CSS 使用。
下面是几种正确方式。
方法一(推荐):在 Razor 中写 style
如果这是 .cshtml 页面,可以这样写:
<style>
.s-logo {
background: url('@StringExtensionsHelper.ToUrl(this.Context.GetCurrentSite().LogoUrl)') no-repeat left center;
padding: 0;
width: 510px;
height: 60px;
}
</style>注意:
url()里面用 单引号Razor 代码在 HTML 中解析
方法二:直接写在 HTML 元素 style
<div class="logo" style="background:url('@StringExtensionsHelper.ToUrl(this.Context.GetCurrentSite().LogoUrl)') no-repeat left center;"></div>方法三(更规范):用 <img> 显示 Logo
如果只是显示 Logo,其实不需要 background。
<div class="s-logo"> <img src="@StringExtensionsHelper.ToUrl(this.Context.GetCurrentSite().LogoUrl)" /> </div>
CSS:
.s-logo.sm img{
width:510px;
height:60px;
}