웹마스터 팁
XE에서 레이아웃이나 기타의 페이지에 include 사용에 대한 오해???
2011.01.18 18:38
어딘가 XE 메뉴얼 페이지에 include 사용법에 대해 기술해 놓은 부분이 있더군요.
다음과 같은 내용으로 설명이 되어 있습니다.
* 다 른 template 파일 include
template 파일 내에서 다른 template파일을 include할 수 있습니다.
이때 경로를 지정하지 않으면 현재의 template file의 위치에서 찾고 없으면 ROOT부터 찾아나갑니다.
1. <!--#include("./include.html")-->
<!--#include("./common/tpl/include.html")-->
그런데 위와 같은 방법으로 해보니 안되더군요.
그리고 또 어디선가 본 댓글에서 누군가의 설명에 의하면 include는 반드시 html 파일만 가능하다고도 되어 있더군요.
또 위 메뉴얼의 예제 말고도 Tip 게시판이나 질문 게시판의 몇가지 include 방법의 설명들이 다 제 각각이어서 헷갈리는 점도 있습니다.
무엇이 맞고 무엇이 오답인지도 모르겠고 설명대로 해봐도 맘 먹은 대로 않되니 말이지요.
결국은 점 하나 차이에 문제더군요.
위의 예제에서 점 하나 더 찍으면 됩니다.
<!--#include("../include.html")-->
<!--#include("../common/tpl/include.html")-->
즉, 경로 지정시 맨 앞에 점을 2개찍어주면 되고 꼭 html만도 아니고 php도 잘 됩니다.
남들 다 알고 있는 별 내용도 아닌 내용이지만 Tip 게시판이나 질문 게시판을 검색해봐도 깔끔(?)한 답글이 없어서 제가 맘먹고(?) 테스트 했던 내용을....... 헷갈리는 분들을 위해 이곳에 적어둡니다.
댓글 3
-
똑디
2011.01.19 09:58
-
DuRi
2011.01.19 11:25
똑디님 //
말씀대로 ... 해당 파일이 layout.html 파일과 같은 위치에 있는 파일이면 <!--#include("./top_index.html")--> 맞고요.
해당 파일이 layout.html 파일과 같은 위치에 있는 파일이면 <!--#include("top_index.html")--> 이렇게 해도 되더군요.
안그래도, 해당 파일이 다른 폴더에 있는 것을 전제하는 경우라고 본문에 단서를 붙이려다가 그냥 뒀더니 ... ^_^ -
sejin7940
2011.01.20 00:55
제가 사용하는 방법입니다. 어떤 상황에서도 돌아갈 수 있게 하기 위한 건데...
이미지의 src 같은 경우는 현재 위치에서 상대주소로 가능한데
플래시 연결 또는 style 로 background url 넣을때는.. 상대주소로 안 먹히더라고요.. ^^;;
일단 레이아웃 자체에.. xe 의 주소를 넣을 수 있게 설정을 해두시고 (저의 경우 index_url 변수에 저장되게 해둡니다)
그 후에....
{$layout_info->index_url}{substr($tpl_path,1)}images/{$layout_info->colorset}/
형식으로 하면, 현제 레이아웃 (또는 스킨) 에서의 이미지폴더에 색상스킨.. 까지 연결이 가능합니다 ^^
($tpl_path 라는 변수를 거의 안 쓰시길레 적어보았습니다)
흠.. 이 댓글 좀 정리해서 tip 으로 올려도 되겠군요...
의외로 만들다보면 css 가 아니라.. 스킨 파일 자체에 style='background 형식으로 써야할 경우가 종종 있는데 그 때 유용하거든요
제 경우는 XE 가 홈디렉토리에 설치 되어 있다는 가정하에.
/layouts/스킨명/layout.html 파일에서 다른 파일을 하나 불러 온다고 했을때, 해당 파일이 layout.html 파일과 같은 위치에 있는 파일이면 <!--#include("./top_index.html")--> 이런식으로 해서 파일 경로를 적어줍니다.
경로 문제에서 상위폴더를 나타내는 ../ 를 안해줘도 정상적으로 나오거든요.
전 현재 1.4.4.4 버전(금일기준 최신버전) 사용중입니다.