대부분 우리는 프로덕션 서버에 게시하기 전에 Localhost에서 Asp.NET 웹 응용 프로그램을 개발하고 테스트합니다. 하지만 나에게 로컬 호스트는 때로는 절대 경로를 올바르게 얻을 수없는 고통이기도합니다. 왜냐하면 내 앱이 http://localhost/MyApp/
에 위치하고 있기 때문에 호스트를 제대로 가져올 수 없기 때문입니다. 몇 가지 코드로 얻을 수는 있지만 좀 더 일반화되어 있으므로 다른 개발자가 동일한 응용 프로그램을 http://localhost/TheirApp
과 같은 다른 위치에 둘 때마다 정상적으로 작동합니다.로컬 호스트의 상대 경로와 절대 경로를 처리하는 방법
샘플 문제 :이 /aboutus.aspx
같은 절대 경로를 사용할 때마다
,이 http://localhost/aboutus.aspx
발생하고 MyApp
을 생략합니다. 상대 경로를 사용하면 다소 불안한 http://localhost/MyApp/IamHere.aspx/aboutus.aspx
이됩니다.
따라서 Request.Url.Authority
또는 Request.Url.Host
이 http://localhost/MyApp
을 반환하는 경우 다음을 사용하여 Google의 URL을 추가하고 멋진 해결책을 찾을 수 있습니다.
대안 솔루션 :
나는이 작업을 수행 할 수 있습니다 :
if(Request.Url.Host.StartsWith("localhost"))
{
string[] segments = Request.Url.AbsolutePath.Split("/");
var localHost = Request.Url.Authority + "/" + segments[0];
}
는 내가 localHost
변수를 사용하고 내 경로를 추가 할 수 있습니다.
하지만 저는 여러분이 그런 문제를 어떻게 다루고 있는지 알고 싶습니다.
감사합니다,
u 물결표가 필요하지 않습니다. 베어 어 파일 이름을 사용하면 현재 웹 응용 프로그램의 현재 호스트 및 포트의 현재 디렉토리가됩니다. 또는 당신은 똑같은 것을 더 명백하게 말할 수 있습니다 ./whatever.aspx – chris
내가 울면 마음에 드나요? 어떻게 요즘은'~ /'를 잊어 버렸지 : / – Tarik