[ASP] 파일 포함

2002. 5. 4. 20:07Scrapbook/개발 및 프로그래밍

반응형
SSI(Server-Side Includes) 디렉티브를 사용하면 웹 서버가 처리하기 전에 다른 파일의 내용을 파일에 삽입할 수 있습니다. ASP는 이러한 방식의 #include 디렉티브만을 구현합니다. 파일을 .asp 파일에 삽입하려면 다음 구문을 사용합니다.

<!--#include virtual | file ="filename"-->
virtual 및 file 키워드는 파일을 포함하기 위해 사용하는 경로 형식을 표시합니다. 그리고 filename은 포함할 파일의 경로 및 파일 이름입니다.

포함 파일은 특별한 파일 확장자가 필요하지 않습니다. 그러나 파일 확장자를 .inc로 지정하여 다른 형식의 파일과 구분하는 것이 좋습니다.

Virtual 키워드 사용
virtual 키워드를 사용하여 '가상 디렉터리'로 시작하는 경로를 나타냅니다. 예를 들어, Footer.inc 파일이 /Myapp 가상 디렉터리에 존재하는 경우 다음 줄은 Footer.inc 내용을 다음 줄이 포함 파일로 삽입합니다.

<!--#include virtual ="/myapp/footer.inc"-->
File 키워드 사용
file 키워드를 사용하여 '상대' 경로를 나타냅니다. 상대 경로는 포함 파일이 포함된 디렉터리로 시작합니다. 예를 들어, Myapp 디렉터리에 파일이 있고, Header1.inc 파일은 Myapp\Headers 디렉터리에 있는 경우, 다음 줄은 Header1.inc 파일을 사용자의 파일에 삽입합니다.

<!--#include file ="headers/header1.inc"-->
포함 파일인 Headers/header1.inc의 경로가 포함 파일에 대해 상대적임을 주의하십시오. 이 #include 문을 포함하는 스크립트가 /Myapp 디렉터리에 없으면 이 구문은 실행되지 않습니다.

또한 file 키워드를 ../ 구문으로 사용해도 [인터넷 서비스 관리자]에서 [부모 경로 사용] 옵션을 선택하면 상위 디렉터리에서 파일을 포함할 수 있습니다. 자세한 내용은 ASP 응용 프로그램 구성을 참조하십시오.

포함 파일의 위치
포함 파일은 웹 사이트 내부 또는 외부의 디렉터리에 둘 수 있습니다. 일반적으로 포함 파일은 웹 사이트 디렉터리 내에 둡니다. 포함 파일이 웹 사이트 디렉터리 내에 있으면 포함 파일에 변경 사항이 있을 경우 다음 브라우저가 포함 파일을 요청할 때 변경 사항이 나타납니다. 그러나 포함 파일이 웹 사이트 외부에 있을 경우는 ASP 응용 프로그램을 다시 시작하거나 웹 서버를 다시 시작하기 전에는 변경 사항이 표시되지 않습니다. ASP는 응용 프로그램 이름 공간(응용 프로그램 시작 디렉터리 위치 아래)에 포함된 모든 포함 파일의 변경 사항을 탐지합니다.

포함 파일: 유용한 정보 및 주의 사항
포함 파일은 교대로 다른 파일을 포함할 수 있습니다. .asp 파일은 또한 #include 디렉티브가 루프를 발생시키지 않는 경우 한 번 이상 동일한 파일을 포함할 수 있습니다. 예를 들어, First.asp 파일에 Second.inc 파일이 포함되는 경우 Second.inc는 교대로 First.asp 파일을 포함해서는 안됩니다. 파일 자체도 포함할 수 없습니다. ASP는 루프 또는 내포 오류를 감지하고 오류 메시지를 보내고 요청된 .asp 파일의 처리를 멈춥니다.

ASP는 스크립트 명령을 실행하기 전에 파일을 포함합니다. 따라서 스크립트 명령을 사용해서는 포함 파일의 이름을 만들 수 없습니다. 예를 들어, 다음 스크립트는 ASP가 name 변수에 파일 이름을 할당하기 전에 #include 디렉티브를 실행하려고 하기 때문에 Header1.inc 파일을 열 수 없습니다.

<!-- This script will fail -->
<% name=(header1 & ".inc") %>
<!--#include file="<%= name %>"-->
스크립트 명령 및 프로시저는 완전히 스크립트 구분 기호 <% 및 %> HTML 태그 <SCRIPT> 및 </SCRIPT> 또는 HTML 태그 <OBJECT> 및 </OBJECT> 안에 포함되어야 합니다. 즉, .asp 포함 파일에서 스크립트 구분 기호를 연 다음 포함 파일에서 구분 기호를 닫을 수 없습니다. 스크립트나 스크립트 명령은 반드시 완전한 한 단위로 취급되어야 합니다. 예를 들어, 다음 스크립트는 작동을 하지 않습니다.

<!-- This script will fail -->
<%
For i = 1 To n
  statements in main file
  <!--#include file="header1.inc" -->
Next
%>
다음은 작동할 수 있는 올바른 스크립트입니다.

<%
For i = 1 to n
  statements in main file
%>
<!--#include file="header1.inc" -->
<% Next %>

반응형