Как получить ссылки CSS для правильного разрешения при добавлении значения PathInfo? - PullRequest
2 голосов
/ 02 февраля 2011

У меня есть приложение asp.net 3.5.когда я пытаюсь добавить значение к URL-адресу, который нужно выбрать в Request.PathInfo, я теряю все, что связано в head, потому что местоположения разрешаются как относительные пути.

главная страница выглядит следующим образом:

<head id="Head1" runat="server">
    <link rel="stylesheet" href='~/App_Themes/main/style.css' type="text/css"  />
</head>

и рендерит вот так

<head id="ctl00_ctl00_Head1">
    <link rel="stylesheet" href="../App_Themes/main/style.css" type="text/css" />
</head>

и поэтому, когда я перехожу на

http://localhost:5000/project/folder/edit.aspx/555

, браузер ищет таблицу стилей на

http://localhost:5000/project/folder/App_Themes/main/style.css

вместо

http://localhost:5000/project/App_Themes/main/style.css

это автоматическое поведение для определения относительного пути?я могу изменить это?это то, что делает предыдущий разработчик, которого я не нашел?

--- edit ---

Я воспользовался предложенным ниже предложением и добавил элемент base, например,

<base id="ctl00_ctl00_baseElement" href="http://localhost:5000/project/"></base>

но мои ссылки по-прежнему не работают, потому что asp.net настаивает на отображении URL-адресов как относительных путей, если href не начинается с /, но в обоих случаях я получаю слишком высокий уровеньсейчас.

http://localhost:5000/App_Themes/main/style.css

Ответы [ 3 ]

0 голосов
/ 26 февраля 2011

Очевидно, когда элемент head определен как серверный элемент управления, элементы link внутри автоматически анализируются и разрешаются сервером.Поэтому решение состоит в том, чтобы использовать элемент head только в качестве стандартного элемента управления html или, возможно, вручную добавить элементы link.Я смирился с идеей PathInfo, которую преследовал, поэтому я не достиг этого.

0 голосов
/ 19 сентября 2017

Я решил эту проблему, добавив HTML-тег 'base', Используя метод: Page.ResolveUrl ("~"), чтобы разрешить базовый URL сайта. Хорошо работает как на локальном хосте, так и на сервере:

    <base href="<%=ResolveUrl("~")%>" />
0 голосов
/ 02 февраля 2011

Использование:

<base href="http://yourdomain.com">
<link rel="stylesheet" href="/App_Themes/main/style.css" type="text/css" />
...