질문
Q #12297
view에서 컨트롤러쪽 상대 경로 인식 문제
슈퍼스타Y
2015-06-27 23:56:21
서버쪽으로는 프로젝트를 해본적이 없네요 ^^;;
앱을 하나 만드는 중인데 서버쪽으로는 일단 지인의 추천과 샘플코드를 챙겨받고
코드이그나이터로 정했습니다.
일단 무작정 로컬에 apm을 깔고 처음 설치를 해보았습니다.
경로 구성은
192.168.1.11/test/cms/index.php
요게 첫 메인입니다.
.ht액서스 파일은 아래와 같이 구성해서 컨트롤러에 있는 함수들 다 정상 호출됩니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|images|captcha|data|include|uploads|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ test/cms/index.php/$1 [L]
</IfModule>
폴더경로 : 192.168.1.11/test/cms/application/controllers/login.php 파일 안에 있는 function main 호출 정상작동합니다.
브라우져 : 192.168.1.11/test/cms/main <-- 정상
192.168.1.11/test/cms/application/models/main_m.php 안에 있는 function login도
디비에서 긁어와서 정상작동합니다.
이렇게 controllers 폴더와 models폴더에 있는 것들은 제대로 호출이 되는데 ...
192.168.1.11/test/cms/application/views/main_v.php 가 문제입니다.
main_v.php 에는
// 중복확인
var fnDuplicatedID = function(){
var id= $("#id").val();
var vurl = "/cms/member/fnDuplicatedID";
var params = {'userId': id};
fnAjax(vurl,"post",params,"callID");
}
와 같은 아이디 중복체크를 해주는 펑션이 있습니다.
fnDuplicatedID는 member 라는 컨트롤러에서 아이디 중복여부를 체크해서 결과값을 가져옵니다.
근데 이 경로가 저렇게 하면 안되고 ...
var vurl = "/test/cms/member/fnDuplicatedID";
라고 해줘야 경로를 인식하고 찾아옵니다.
그냥 경로를 바꿔주면 되겠지만, 파일도 너무 많고, 파일마다 안에 있는 경로를 다 바꿔주기에는
이미 너무 많은 길을 왔네요 ㅠㅠ ( 물론 가능은 합니다만, 사정이 좀 있습니다;;; )
이거 상대경로 인식 가능하게 전체적으로 셋팅해주는 뭔가가 있을법 한데 말이지요...
아시는 분 있으면 헬프좀 부탁드려요 ㅠㅠ
/...../test/ 까지 잡아주시면 됩니다. 앞단의 .....은 서버에 맞게 수정해주시면 되구요.
저런 문제때문에 config.php의 constants.php에 상수를 선언하여 사용하는 것으로 권장하고 있습니다.
(좌측메뉴에서 포럼소스 다운 받아서 참고하세요)