避免将虚拟目录添加到ASP.NET 5应用程序上的路径

时间:2015-12-02 15:36:30

标签: c# asp.net-core asp.net-core-mvc

在ASP.NET 5 MVC视图中,我有以下内容:

<header style="background-image: '/assets/poster.jpg')">

文件夹&#34; assets&#34;在wwwroot里面......

这很好但是当我在虚拟目录下的服务器上托管项目时,我需要将虚拟目录名添加到路径中:

<header style="background-image: '/virtualdirectory/assets/poster.jpg')">

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:2)

有趣的是,这将有效

<img src='~/assets/poster.jpg'/>

但是,这不会

<div style="width:990px; height:99px; background-image: url('~/assets/poster.jpg')"> </div>

对于内联样式,您可以使用Url.Content辅助方法生成应用程序绝对路径。

以下代码应该有效。

<div style="width: 100px; height: 100px; 
            background-image:url('@Url.Content("~/assets/poster.jpg")')"></div>

如果你想在css类中使用它,你可以简单地使用相对路径。

.myTest {
    background-image: url('../assets/gravatar.png');
     width:100px;height: 50px;
}

假设您的css文件位于assets文件夹的兄弟目录下(例如:css)。