Что ~ делает в начале URL в asp.net? - PullRequest
2 голосов
/ 17 марта 2010

Я редактирую определенный веб-сайт, который раньше использовал порт 80 (по умолчанию), который не требовался в URL (потому что это по умолчанию ..)

Но порт (по техническим причинам) нужно было изменить, и теперь он должен быть проинформирован.

Я могу получить доступ к главной странице через ip: порт \ страницу следующим образом:

1.2.3.4:81\page.aspx

Каждая ссылка на сайте составлена ​​так:

<asp:HyperLink runat="server" Text="random" NavigateUrl="~/fdr/whatever.aspx" />

И всякий раз, когда я нажимаю на ссылку, страница не загружается, но URL-адрес создается в строке URL-адреса браузера, тогда я просто добавляю ": 80" после IP-адреса в URL-адресе, и он работает.

Из-за наличия строк запросов (другими словами, для того, чтобы уже иметь доступ к URL), я прежде думал, что '~' в начале URL в ссылке говорит: «оставайтесь на том же сайте, просто измените на эта веб-страница в этой папке ", но если порт исчезает, я предполагаю, что теперь запрашивается адрес (вероятно, IIS) для местоположения текущего веб-сайта.

Тогда я хочу знать (вместо того, чтобы добавлять порт к каждой ссылке на моем веб-сайте), как мне настроить того, кто запрашивает ~ в ссылке, чтобы каким-либо образом добавить порт. Как мне это сделать?

- [EDIT] -
Проверьте этот другой мой вопрос для получения дополнительной информации:

URL-адрес теряет номер порта при каждой загрузке страницы

Ответы [ 2 ]

2 голосов
/ 17 марта 2010

Указывает на текущий корневой каталог приложения asp.net (который может находиться в подкаталоге веб-сайта). Он позволяет кодировать ссылки независимо от того, находится приложение в корневой папке или нет.

Порт / домен никогда не является частью игры. Предполагается, что порты установлены браузером на 80.

Тем не менее, что является технической причиной для переноса приложения с порта 80? Я не знаю ни одной уважительной причины, извините;)

1 голос
/ 17 марта 2010

Знак ~ известен как корневой оператор приложения. Вы можете прочитать больше об этом здесь (MSDN) и процитировать:

ASP.NET разрешает оператор ~ в корень текущего приложения. Вы можно использовать оператор ~ в сочетании с папками, чтобы указать путь, который на основе текущего корня.

В следующем примере показано ~ оператор используется для указания относительный корень путь для изображения, когда с помощью управления сервером изображений в этом Например, файл изображения читается из папка изображений, которая находится прямо под корнем Интернета приложение, независимо от того, где в веб-сайт, на котором находится страница.

По сути, это ярлык для свойства System.Web.HttpRuntime.AppDomainAppVirtualPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...