ASP.NET 웹 페이지 - 폴더

이 장은 폴더와 폴더 경로를 소개합니다。

이 장에서는 다음을 배울 수 있습니다:

  • 로직과 물리 폴더 구조
  • 가상과 물리 이름
  • web URL과 경로

로직 폴더 구조

아래는 ASP.NET 웹 페이지의 표준 폴더 구조입니다:

웹 페이지 파일 구조
  • "Account" 폴더는 로그인 및 보안 파일을 포함합니다
  • "App_Data" 폴더는 데이터베이스 및 데이터 파일을 포함합니다
  • "Images" 폴더는 이미지를 포함합니다
  • "Scripts" 폴더는 브라우저 스크립트를 포함합니다
  • "Shared" 폴더는 일반 파일(예: 레이아웃 및 스타일 파일)을 포함합니다

물리 파일 구조

위 웹 사이트의 "Images" 폴더의 물리 구조는 컴퓨터에서 다음과 같습니다:

C:\Johnny\Documents\MyWebSites\Demo\Images

가상과 물리 이름

위의 예제를 바탕으로:

web 이미지의 가상 이름은 "Images/pic31.jpg"와 같습니다。

그러나 물리 이름은 "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"와 같습니다。

URL과 경로

URL은 웹에서 파일에 접근하는 데 사용됩니다:

http://www.codew3c.com/html5/html5_intro.asp

서버에서 파일에 대응하는 URL은 다음과 같습니다:

C:\MyWebSites\htm5\html5_intro.asp

가상 경로는 물리 경로를 대표하는 단축 형식입니다. 가상 경로를 사용하면 경로를 업데이트하지 않고 웹 페이지를 다른 도메인(또는 서버)로 이동할 수 있습니다。

URL	http://www.codew3c.com/html/html5_intro.asp
서버 이름	codew3c
가상 경로	/html/html5_intro.asp
물리 경로	C:\MyWebSites\codew3c\/html/html5_intro.asp

디스크 드라이브의 루트 디렉토리는 C:\로 쓰여 있지만, 웹 사이트의 루트 디렉토리는 /(슬래시)입니다。

web 폴더의 가상 경로는 대부분 실제 폴더와 다릅니다。

코드 내용에 따라 실제 경로와 가상 경로를 동시에 참조할 수 있습니다。

ASP.NET은 폴더 경로를 처리하는 도구로 ~ 연산자, Server.MapPath 메서드 및 Href 메서드를 제공합니다。

~ 연산자

가상 루트 디렉토리를 코드에서 지정하려면 ~ 연산자를 사용하십시오。

~ 연산자를 사용하면, 경로 대신 사용하여 코드를 변경하지 않고 웹사이트를 다른 폴더나 위치로 이동할 수 있습니다:

var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";

Server.MapPath 메서드

Server.MapPath 메서드는 가상 경로 (/default.cshtml)을 서버가 이해할 수 있는 물리 경로 (C:\Johnny\MyWebSited\Demo\default.cshtml)로 변환합니다.

서버에 위치한 데이터 파일을 열어야 할 때, 이 메서드를 사용합니다(데이터 파일은 전체 물리 경로를 통해 액세스할 수 있습니다):

var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);

다음 장에서는 서버에서 데이터 파일을 읽고 쓰는 방법에 대해 더 배울 것입니다.

Href 메서드

Href 메서드는 코드 중의 경로를 브라우저가 이해할 수 있는 경로로 변환합니다(브라우저는 ~ 연산자를 이해할 수 없습니다).

Href 메서드를 사용하여 자원(예: 이미지 및 CSS 파일)을 지정하는 경로를 생성합니다.

HTML <a>、<img> 및 <link> 요소에서 자주 사용하는 메서드입니다:

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- CSS 파일을 지정하는 링크를 생성합니다 -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- 동일합니다 : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

Href 메서드는 WebPage 객체의 메서드입니다.