我有一个引用背景图片的CSS类:
#content-wrapper
{
background: #f7f7f7 url('/Images/bg04.png');
border-top: solid 1px #fff;
padding: 45px 0 45px 0;
}
我一直在使用MVC4和Razor一段时间了,我已经习惯使用@Url.Content()
链接到图像,其他页面以及网站上提供的文档。
但是,在.cshtml
页面之外,它看起来并不像这个特定帮助(或任何真正的帮助)。
我的问题:
有没有办法在样式表上“启用”@Url.Content()
?
答案 0 :(得分:3)
不容易,我还没有遇到需要它的情况,因为路径是相对于样式表(不是页面,可能会改变)。虽然您不应使用像url('/Images/bg04.png')
这样的绝对路径,而应使用相对网址,例如url('../Images/bg04.png')
因此,如果您将CSS存储在~/content
中且图片位于~/images
,那么样式表中的所有路径都应以../images/
开头
答案 1 :(得分:2)
我在MVC5 Razor <head>'s <style type="text/css">
元素内部使用@ Url.Content()没有问题:
background:url('@ Url.Content(“〜/ Content / Images / logo-bg.jpg”)')no-repeat scroll 0 0;
答案 2 :(得分:0)
我遇到了这个,它帮助了我
<head>
<meta charset="utf-8" />
<meta name="description" content="The content description" />
<link rel="shortcut icon" href="@Url.Content("~/Content/images/favicon.ico")" />
<title>@ViewBag.Title</title>
@RenderSection("css", false)
</head>
然后在你的Index.cshtml中使用该部分添加你的css链接:
@section css {
<link href="@Url.Content("~/css/style.css")" rel="stylesheet"/>
}
请注意,“css”是您的部分的唯一名称,需要匹配。您也可以在任何所需的视图中使用此部分。您在css部分中指定的部分将在html的head-tag中呈现,就像您将RenderSection占位符放在_Layout.cshtml中一样。