2009-09-28 2 views
0

У меня есть 2 вопросакак получить абсолютный путь сервера

  1. Как получить абсолютный Uri в asp.net. Например: Вход: «~/Files /», выход: «www.sampleweb.com/Files/»

  2. Что такое «перейти к корневой» команду в URL на стороне клиента, как команды на стороне сервера "~/Files /"

Например:

местоположение файла

myAspProjectName/Files/aa.jpg 
myAspProjectName/User/bb.aspx 

в bb.aspx

<asp:image ImageUrl="~/Files/aa.jpg" id="img1" runat="server"/> 

это произведение хорошо. Но

<img src="~/Files/aa.jpg" alt=""/> 

не работают

+1

Я не уверен, что я понимаю вопрос. Вы имеете в виду «как вы это делаете в Javascript»? Возможно, если бы вы расширили то, что вы делаете, это поможет. – David

ответ

3

Как и Марк Б, для этого нет явного синтаксического ярлыка.

Если вы делаете это с текущим запросом, вы можете просто использовать Request.Url или для произвольного файла вы можете использовать Page.ResolveURL("~/some/path"), если используете страницу ASP.Net. Это методы, которые будут генерировать абсолютные относительные URI, то есть те из form/path/somefile, а затем, если вы затем получите имя хоста, используя подход Mark B, вы можете объединить две вещи вместе.

Что касается (2) Я думаю, вы, возможно, имеете в виду абсолютные относительные URI. Если относительный URI начинается с косой черты, он разрешается как относительно базового домена, например. если вы были на странице http://yourdomain.com/somedir/somepage.aspx, и вы следовали за ссылкой, которая была /otherdir/somepage.aspx, вы бы закончили с http://yourdomain.com/otherdir/somepage.aspx

0

Я не думаю, что есть ярлык синтаксис для отображения физический путь к виртуальному, включая имя домена. Однако это будет работать:

string absoluteUri = Request.ServerVariables["SERVER_NAME"] + Request.ServerVariables["URL"]; 

Не уверен, что вы подразумеваете под вторым вопросом - пожалуйста, можете ли вы расширить?

Смежные вопросы