Server.Mappath 에 대한 자세 한 접촉
4022 단어 Server.Mappath
항상 Server.MapPath 의 사용 방법 을 잊 어 버 렸 습 니 다.다음 에 기록 하여 나중에 사용 할 수 있 도록 하 겠 습 니 다.
총 주:Server.MapPath 에서 얻 은 경 로 는 모두 서버 의 물리 적 경로 입 니 다.즉,흔히 말 하 는 절대적 인 경로 입 니 다.
1、Server.MapPath("/")
주:프로그램 루트 디 렉 터 리 가 있 는 위 치 를 가 져 옵 니 다.예 를 들 어 C:\Inetpub\\wwroot\.
2、Server.MapPath("./")
주:현재 페이지 의 디 렉 터 리 를 가 져 옵 니 다.Server.MapPath(")와 같 습 니 다.
3、Server.MapPath("../")
주:해당 페이지 의 상위 디 렉 터 리 를 가 져 옵 니 다.
4、Server.MapPath("~/")
주:현재 응용 프로그램의 디 렉 터 리 를 가 져 옵 니 다.루트 디 렉 터 리 라면 루트 디 렉 터 리 입 니 다.가상 디 렉 터 리 라면 가상 디 렉 터 리 가 있 는 위치 입 니 다.예 를 들 어 C:\Inetpub\wwroot\\Example\.
먼저 그림 보기:
1.먼저 이 컴퓨터 E 판 아래 에 red 폴 더 를 만 들 고 클립 안에 conn.asp 파일 을 계속 만 듭 니 다.파일 내용 은 다음 과 같 습 니 다.
<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>
세 가지 경 로 를 마지막 으로 디 버 깅 한 결과 입 니 다.
2,red 폴 더 아래 에 폴 더 database 를 만 듭 니 다.이 폴 더 내 부 는 cnbruce.mdb 파일 을 저장 합 니 다.
그래서 현재 데이터베이스 파일 의 절대 경 로 는 E:/red/database/cnbruce.mdb 라 는 것 을 확신 할 수 있 습 니 다.
이상 은 문제 없 을 거 예요.잘 알 고 있 습 니 다.계속 내 려 다 보 세 요.모 르 겠 습 니 다.빨리 windows 운영 체제- -!
3.비교 대 조 를 위해 red 폴 더 아래 에 blue 폴 더 를 계속 만 듭 니 다.이 폴 더 는 내부 에 같은 conn.asp 파일 을 저장 합 니 다.
<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>
4.물론 중요 한 것 은 red 폴 더 를 가상 디 렉 터 리 로 설정 하 는 것 입 니 다.방법 은 red 폴 더 에서 마 우 스 를 오른쪽 클릭 하고'공유...'를 선택 하 며 팝 업 창 에서'웹 공유'탭 을 계속 선택 하고'이 폴 더 공유'를 선택 하 며 별명 은'red'로 설정 합 니 다.마지막 으로"확실 하 다".
5,OK,이제 두 개의 conn.asp 파일 을 디 버 깅 할 수 있 습 니 다.
레 드 폴 더 아래 에 있 는 것 을 먼저 보고 입력 한 URL 은 다음 과 같 습 니 다.http://localhost/red/conn.asp
결 과 를 보면 그 중 하나 가 정확 하 다 는 것 을 알 수 있다.바로...
<%=Server.Mappath("database/cnbruce.mdb")%>
6.red 폴 더 의 blue 폴 더 에 있 는'URL'을 다시 봅 니 다.http://localhost/red/blue/conn.asp
관찰 결 과 는 여전히 정확 하 다.그것 이 바로
<%=Server.Mappath("../database/cnbruce.mdb")%>
7.요약:왜 두 번 이나 정확 한 경 로 를 표시 하 는 것 은 같은 코드 가 아 닙 니까?
상대 적 인 경로 때 문 이 분명 하 다.red 폴 더 에 있 는 conn.asp 파일 과 database 폴 더 는 형제 관계 이기 때문에 cnbruce.mdb 를 찾 으 면 데이터베이스/cnbruce.mdb 를 직접 찾 을 수 있 습 니 다.
블 루 폴 더 아래 의 conn.asp 와 database 폴 더 는 조카 아저씨 관계 입 니 다.cnbruce.mdb 를 찾 으 려 면 당연히../database/cnbruce.mdb 입 니 다.그 중에서../바로 윗 층 입 니 다.
8.다시 보기<%=Server.Mappath("/database/cnbruce.mdb")%>는 두 번 모두 같은 효 과 를 보 여 줍 니 다.모두 c:\inetpub\www wroot\\아래 를 가리 키 고 있 습 니 다.그것 은"database"앞 에"/"를 추가 하여 루트 디 렉 터 리 에 도착 했다 는 것 을 표시 합 니 다.로 컬 IIS 가상 루트 록 은 c:\inetpub\www wroot\입 니 다.이것 은 기본 웹 사이트 속성 에 있 습 니 다.
9,주의,다시 봐!항상 이곳 에 있 었 는데 인터넷 에 올 라 오 면 어 떨 까요?
우선,conn.asp 연결 파일 과*.mdb 데이터베이스 파일 의 주소 관 계 를 정확하게 알 아야 합 니 다.
이 어 올 바른 Server.Mappath 변환 방법 을 선택 하 십시오.
"/"경 로 를 사용 하지 않 는 것 이 좋 습 니 다.가상 호스트 와 비 가상 호스트 의 문제 가 걸 려 있 기 때문이다.
가상 호스트,예 를 들 어 제 사이트 의 가상 루트 디 렉 터 리 는 사이트 자체 의 루트 디 렉 터 리 입 니 다.c:\inetpub\wwroot\로 전환 하 는 문제 가 존재 하지 않 습 니 다.
이 를 통 해 알 수 있 듯 이'/'를 사용 할 때의 경 로 는 본 사이트 의 루트 주소 입 니 다.
10,조심 하 세 요!
만리 장정 이 끝 났 으 니 무슨 말 을 해도 버 텨 야 지~!
conn.asp 파일 내용 의 작성 방법 을 알 고 있 지만 인용 할 때 include 에 포 함 된 파일 의 실질 을 주의해 야 합 니 다.포 함 된 파일 은 포 함 된 파일 에서 실 행 됩 니 다.
따라서 conn.asp 를 어디 에 두 든 conn.asp 의 내용 이 어떻든 마지막 으로 이 파일 을 포함 하 는 파일 위치 와 데이터 베 이 스 를 포함 하 는 위치 관계 에 달 려 있다.