강좌게시판

제목 설정 - constants.php
글쓴이 변종원(웅파) 작성시각 2011/10/27 11:17:31
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 28419   RSS
저는 개발할때 config/constants.php에 한 접근경로에 http:// 로 시작하는 주소와 절대경로 주소를 선언하여
개발을 합니다.

define('CSS_ROOT', dirname(FCPATH).'/include/css');

define('CSS_DIR', 'http://'.$_SERVER['HTTP_HOST'].'/include/css');

물론 index.php가 있는 디렉토리를 기준으로 상대경로를 써도 됩니다.
ci의 url 헬퍼를 써도 되구요.

통상적으로 윈도우 환경에서 개발을 하고 리눅스서버에 올리는 경우 문제가 되는 것이 2가지있습니다.

1. 대소문자 : 윈도우는 대소문자 구분을 안합니다. COMMENT.jpg 라고 뷰에서 선언하고 실제로 이미지는 comment.jpg로
되어 있을 경우 개발시에는 에러가 안납니다. 개발하다보면 흔히 있는 일입니다. 코더의 실수 또는 개발자 실수 등등

2. 모든 경로를 ci의 내부에서 사용하면 문제가 안되나 이미지를 ci의 외부로 빼서 사용할 경우엔 윈도우 개발시
업로드할 때 경로문제가 생깁니다.
그럴 경우 아래와 같이 사용합니다.
윈도우일 경우엔 ci가 D에 있다면 D:\files\uploads를 반환하고 리눅스일 경우엔 /files/uploads 를 반환합니다.
$ups = realpath(FCPATH);
if(strstr($ups, ':')) {
 $exs = explode(':', $ups);
 $ups_root = $exs[0].":\\files\\uploads";
} else {
 $ups_root = '/files/uploads';
}
define('UPLOAD_ROOT', $ups_root);


퍼가실 때는 링크로 퍼가시길 부탁드립니다.
무단전제는 금합니다.

 다음글 설정 - config.php 1편 (6)
 이전글 ci + jquery (5)

댓글

한대승(불의회상) / 2011/10/27 12:51:23 / 추천 0
간과하기 쉬운 부분입니다.

일반적으로 개발은 윈도우 환경에서 하고 운영은 리눅스에서 하게 되는데, 이런 부분에서 개발자도 모르게 실수 하는 경우가 종종 있게 됩니다.
웅파님이 올려 주신 부분을 잘  응용하여 이런 실수가 없도록 하는게 좋겠네요.

유용한 정보 감사합니다.
무명의시인2 / 2011/10/31 12:51:10 / 추천 0
아하~~ 감사합니다^^