CI 묻고 답하기

제목 view에서 컨트롤러쪽 상대 경로 인식 문제
글쓴이 슈퍼스타Y 작성시각 2015/06/27 23:56:21
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 17471   RSS
서버쪽으로는 프로젝트를 해본적이 없네요 ^^;;
앱을 하나 만드는 중인데 서버쪽으로는 일단 지인의 추천과 샘플코드를 챙겨받고
코드이그나이터로 정했습니다.
일단 무작정 로컬에 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"; 
라고 해줘야 경로를 인식하고 찾아옵니다.
그냥 경로를 바꿔주면 되겠지만, 파일도 너무 많고, 파일마다 안에 있는 경로를 다 바꿔주기에는
이미 너무 많은 길을 왔네요 ㅠㅠ ( 물론 가능은 합니다만, 사정이 좀 있습니다;;; )


이거 상대경로 인식 가능하게 전체적으로 셋팅해주는 뭔가가 있을법 한데 말이지요...
아시는 분 있으면 헬프좀 부탁드려요 ㅠㅠ

 
태그 views,경로,상대경로,절대경로,컨트롤러 경로
 다음글 코딩방법의 대중적인 방법 문의 드립니다. (3)
 이전글 DB 불러오는 도중 에러가 나네요 (1)

댓글

변종원(웅파) / 2015/06/28 14:16:56 / 추천 0
아파치서버가 192.168.1.11 을 서버 root로 인식해서 그러니 아파치 설정을 
/...../test/ 까지 잡아주시면 됩니다. 앞단의 .....은 서버에 맞게 수정해주시면 되구요.
저런 문제때문에 config.php의 constants.php에 상수를 선언하여 사용하는 것으로 권장하고 있습니다.
(좌측메뉴에서 포럼소스 다운 받아서 참고하세요)