Обычно темы ASP.NET ограничиваются файлами скинов и CSS-файлами со всеми изображениями, на которые есть ссылки из CSS-файла.В этом сценарии пути к изображениям являются относительными из файла CSS.
Если вам нужен путь к файлу внутри папки текущей темы относительно страницы, вы можете использовать свойство Page.Theme в сочетании с Page.ResolveUrl () method:
<%= Page.ResolveUrl(String.Format("~/App_Themes/{0}/Images/favicon.ico", Page.Theme)) %>
Если вы хотите использовать это в элементе <link rel="shortcut icon">
, вы можете просто поместить приведенный выше код в атрибут href
.Если у вас нет <head runat="server">
, в этом случае ASP.NET может выдать HttpException:
Невозможно изменить коллекцию Controls, поскольку элемент управления содержит блоки кода (т. Е. <% ...%>).
Это можно исправить, поместив элемент <link>
в элемент управления <asp:PlaceHolder>
:
<head runat="server">
<asp:PlaceHolder runat="server">
<link rel="shortcut icon" href="<%= ... %>" />
</asp:PlaceHolder>
</head>