2015-12-02 3 views
1

На ASP.NET MVC 5 зрения у меня есть следующие:Избегайте добавления виртуального каталога в пути на ASP.NET 5 приложений

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

Папка «активов» находится внутри Wwwroot ...

Это работает нормально, но когда я разместить проект на сервере под виртуальный каталог, мне нужно добавить имя виртуального каталога в пути:

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

Как я могу избежать этого?

+0

Вы пытались использовать '~/assets/poster.jpg' ?? – Sayyid

+0

Нет, я не ... Могу ли я использовать «~» в этом случае? У меня также есть проблемы, когда одна и та же строка кода находится внутри файла CSS, и в этом случае я не могу использовать ~ или я могу? –

+0

@NEDian: Я забыл, но да, я использовал ~ в пути backgound заголовка, но в этом случае он даже не работает на моей машине разработки ... Я не думаю, что «~» работает с кодом на стороне клиента ... –

ответ

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 находится в директории (Ex: CSS), которая является родной брат в assets папку.

+0

Как насчет путей в файлах CSS? Любое предложение в этом? –

+0

@Miguel Вы должны использовать его в css. См. Мой обновленный ответ. – Shyju

Смежные вопросы