У меня есть ведущая страница ASP.net. В этом ведущем устройстве у меня есть все свои определенные файлы CSS и JavaScript. У меня также есть несколько изображений и несколько кнопок и гиперссылок.
Все URL все объявляются как родственник т.е. "/scripts/ian.js"
Все хорошо работает, если этот сайт является корневым веб-сайтом, но мне нужен он для работы в виртуальном каталоге.
Моя проблема состоит в том, когда я помещаю этот веб-сайт в виртуальный каталог под корневым сайтом, все мои ссылки указывают на корневой сайт. таким образом, мои ссылки указывают на www.root.com/scripts/ian.js, но это должно указывать на www.root.com/virtualDir/scripts/ian.js
Я думал, что Основной тег Href в заголовке поможет, но до сих пор это, кажется, не помогает в так или иначе. Все ссылки все еще указывают на корневой веб-сайт, когда я нависаю над ними.
То, что я хотел бы, является единственной установкой или в IIS или в файле конфигурации, что я могу установить корневой URL и любое изображение, сценарий или связаться или на основной странице или на странице содержания, указал бы на правильное место.
Любые предложения или идеи приветствуются.
Спасибо
Все URL-адреса объявлены как относительные, т. Е. "/Scripts/ian.js"
. Кажется, это абсолютные URL-адреса, которые вы используете, а не относительные URL-адреса. , вероятно, поэтому тег
не дает желаемого эффекта:
Этот атрибут определяет абсолютный URI , который действует как базовый URI для {{1} } разрешение относительных URI.
- из http://www.w3.org/TR/html401/struct/links.html#h-12.4
Вы можете попробовать удалить начальный '/' из URL-адресов, чтобы проверить, что работает?
В противном случае я обычно использую ResolveClientUrl , чтобы обойти подобные проблемы, которые вы бы использовали так же, как другие предлагали использовать ResolveUrl :
<script type="text/javascript" src="<%= ResolveClientUrl("~/path/to/js") %>"></script>
...
<img src="<%= ResolveClientUrl("~/path/to/img") %>" alt="..." />
Надеюсь, это поможет.
Используйте тильду (~) в вашей ссылке (например, ~ / scrips / ian.js) ... посмотрите, работает ли это Для ссылок попробуйте Page.ResolveUrl на странице .aspx.
Большинство тегов, включая обычные HTML-теги, такие как , и т. Д., Могут использовать ~ / в качестве корневого пути приложения, если установлен атрибут * 'runat = "server"'.
например.
<img src="~/images/test.png" runat="server" />
Это делает тег тегом сервера, а тильда заменяется корнем приложения перед возвратом вывода в браузер.
Это не работает должным образом для