일or놀이/ASP.NET-C#

VS 2005 SP1에서 웹사이트 루트를 "/"로 만들기

TIGERJUNE 2006. 12. 22. 15:35
원문 : http://weblogs.asp.net/scottgu/archive/2006/12/19/tip-trick-how-to-run-a-root-site-with-the-local-web-server-using-vs-2005-sp1.aspx

------------------------------------------
내가 자주 받는 질문 중의 하나는

ASP.NET 웹사이트 프로젝트의 루트를 "/"로 할 수 있냐는 것이다.

VS 웹서버나 VS 2005 웹사이트 프로젝트 모델에서 말이다.



기본적으로 파일시스템 기반의 웹사이트 프로젝트를 실행하면,

VS는 가상 경로를 프로젝트 루트 디렉토리 이름으로 해서 실행한다.

예를 들어 프로젝트 이름이 "Foo"이면 "http://localhost:1234/Foo/"가 루트가 된다.

수많은 사람들이 원하는 것은 그냥 단순히 "http://localhost:1234/"로 실행되는 것이다.

80 포트가 사용되고 있지 않을 경우에는 "http://localhost"로 실행되어야 한다.

이렇게 하면 사이트 네비게이션과 url 다루는 로직이 훨씬더 간단해진다.



VS 2005 SP1이 나오기 전에는, IIS로 실행하도록 권했다.

(예전에 그에 관한 글들을 블로그에 올렸었다.)

좋은 뉴스를 전해주자면 VS 2005 SP1에서는 이렇게 만드는게 훨씬 쉬워졌다는 것이다.



- VS 2005 웹사이트 프로젝트의 루트를 "/"로 설정하는 단계별 지침

웹사이트 프로젝트의 루트를 "/"로 만드는 설정방법에 대해 살펴볼 것이다.

1) 기존의 웹사이트 프로젝트나 새로 만드는 프로젝트를 파일 -> 새 웹사이트 메뉴를 선택해서 연다.

2) Visual Studio의 솔루션 탐색기를 사용해서 웹사이트 프로젝트를 선택한다.

3) 속성창을 보면 웹사이트 프로젝트 속성들이 보일 것이다.

  우리가 할 작업과 관계있는 속성은 "가상 경로", "사용자 동적 포트", "포트 넘버" 3개다.

  "가상 경로"를 "/"로 바꾼다. 그리고 동적 포트 세팅을 "false"로 하고 특정 포트 넘버를 설정한다.

  (예를 들어 80포트가 사용중이면 8081로 하고 아니면 80으로 한다)

4) 페이지 하나를 클릭해서 실행해 본다. 웹서버가 "/"를 루트로 해서 실행될 것이다.



"http://localhost" 뒤에 ":8081"이 붙는 것을 주목하라.

이것은 IIS7이 이미 80포트를 점유하고 있기 때문이다.

만일 IIS7을 중지시키면 "http://localhost"로 설정할 수 있을 것이다.



이제 사이트맵에서도 "/"로 시작하게 만들 수 있다. (예: /products, /help 등등)

또한 redirect나 html에서도 그렇게 사용할 수 있다. (예: <a href="http://weblog.asp.netpath">)

물론 자바스크립트에서 가능하다. (<script src="http://weblogs.asp.net/js/library1.js"></script>)

출처 :
http://taeyo.pe.kr/threadboard/Content.asp?table=Board_Knowhow&seqs=1115&page=1