这可能是一个快速修复的东西,但我似乎无法找到答案。我在我的站点(MVC 4)中添加了一个虚拟目录,并将其设置为作为自己的应用程序运行。但是,图像文件都试图从站点的根目录而不是虚拟目录访问。我已经改变了CSS文件中的路径,但似乎并没有解决问题。我是否真的必须硬编码所有文件的绝对路径与@Url.Content("~")
?
答案 0 :(得分:1)
引用CSS中的图片
使样式表中的路径相对于样式表的位置。
因此,如果您的样式表位于Content\Site.css
,并且您希望引用Images
中的图片,请使用'../Images/<filename>'
中的路径Site.css
。这样,无论您的应用程序是从哪个虚拟目录提供,路径都是正确的。
换句话说,要使用myimage.png
作为背景图片,您可以在Site.css
中添加类似内容:
#mydiv { background-image: url('../Images/myimage.png'); }
从Razor视图中引用图片
从剃刀视图引用静态图片时,请使用@Url.Content("~/pathtofile")
方法,或者更好的是,使用T4MVC(请参阅该页上的第2.4节)。
希望这有帮助。
答案 1 :(得分:0)
硬编码是一个坏主意。请改用@ Url.Content()。