Темы, виртуальный путь и база href - PullRequest
0 голосов
/ 06 февраля 2012

Я создал тему со скином, в том числе, например, следующее:

<asp:Image runat="server" runat="server" SkinID="SquareCopy" 
    ImageUrl="~/App_Themes/MyTheme/square_copy.png" />

Это создаст (в зависимости от того, на какой странице я это называю):

<img src="../App_Themes/MyTheme/square_copy.png">

Что бы мне нужно было сделать, если бы я только хотел (нет ../):

<img src="App_Themes/MyTheme/square_copy.png">

Я пытался пропустить ~/: ImageUrl="App_Themes/MyTheme/square_copy.png" />

Но, похоже, это не имеет никакого эффекта. Причина, по которой я хочу иметь пути исправления, заключается в использовании base href во всем проекте.

Спасибо за любые предложения!

Редактировать : Интересно, что если я использую Image-Control без идентификатора скина, я могу заставить его отображать путь так, как мне хотелось бы:

<asp:Image id="Image1" runat="server"
    ImageUrl="App_Themes/MyTheme/square_copy.png"/>

Результаты:

<img id="MainContent_Image1" alt="Image text" 
    src="App_Themes/VolunteerClient/square_copy.png">

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Базовый URL-адрес элемента, определенного в файле скина, всегда будет

App_Themes/MyTheme/

, где MyTheme - это название вашей темы.например.

Path="~/App_Themes/MyTheme/Images/a.jpg"

будет преобразован в Path = "App_Themes / MyTheme / Images / a.jpg"

также

Path="Images/a.jpg"

будет преобразован в Path ="App_Themes / MyTheme / Images / a.jpg"

Если вы хотите изменить это поведение, вам нужно перезаписать путь.

Надеюсь, это поможет

0 голосов
/ 06 февраля 2012

Попробуйте что-то вроде этого ...

<asp:Image runat="server" runat="server" SkinID="SquareCopy" 
    ImageUrl="<%= Page.ResolveClientUrl("~/App_Themes/MyTheme/square_copy.png") %>" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...