제목 | 컨트롤러 관련 질문입니다! | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | syrup | 작성시각 | 2019/01/21 16:08:55 |
|
|||
안녕하세요! 코드이그나이터를 공부 중에 궁금한 점이 생겨 질문드립니다 코드이그나이터를 보면 controller model view 를 통해서 웹에 페이지가 나타나는 구조인거 같은데요. 이렇게 되면 index.php 죽이기 과정을 진행했다는 가정하에 http://example.com/[controller-class]/[controller-method]/[arguments] 이와 같은 경로에서 나타난다는걸 알았습니다. 그런데 혹시 베이스 경로가 / 이라 했을 때 / 경로상에 index.html을 생성한 후 페이지를 표시할 때 local에서 작업할때처럼 컨트롤러와 뷰를 거치지 않고 http://example.com 접속시 바로 index.html 페이지가 나타나도록 하는 방법이 있는지 궁금합니다
이런 식의 표현이 가능하면 훨씬 간편한 구조가 될 것 같아서요 |
|||
다음글 | csrf 갱신관련문의 (1) | ||
이전글 | 컨트롤러에서 조회된데이터에 서브쿼리 쓰는 방법이 있나요... (3) | ||
변종원(웅파)
/
2019/01/21 17:44:36 /
추천
1
|
kaido
/
2019/01/22 09:27:12 /
추천
0
프레임워크 사용 안하는 거랑 차이점이... ^^?
컨트롤러가 Test.php 이라 가정 했을때 uri 주소를 https://example.com/test.php 형태로 나타내는 방법은 있습니다. |
엽토군
/
2019/01/22 10:31:17 /
추천
0
질문자님은 아마도 "첫화면 하나 띄우자고 컨트롤러 뷰 다 만들어야 하나" 싶어서 질문하신 것 같은데 (아닐 수도 있지만) 만약 그런 거라면 MVC프레임워크 사용에 대한 개념을 좀 바꿔보심이 어떤가 합니다. 저라면 정적 뷰 하나만 처리하는 하나의 컨트롤러에 하나의 메소드만 만들어놓고 재사용할 것 같습니다. 이는 매뉴얼이 제시하는 가이드이기도 합니다. // config/routes.php $route['about/(:any)'] = 'static/index/$1'; // controllers/Static.php public function index($sub_route = null) { $this->load->view('layout/header'); $this->load->view('static/'.($sub_route ?? 'front')); $this->load->view('layout/footer'); }
|
syrup
/
2019/01/22 11:18:16 /
추천
0
답변 감사합니다! 제 질문을 좀 더 구체적으로 설명드리면 1.html , 2.html, 3.html 의 3개 파일이 있다 가정했을때 이 파일들을 꼭 /application/view 경로에 두지 않고 / 경로에 위치시키는 방법이 없을까요?? 즉, 제가 나타내고자 하는 파일이 꼭 /application/view 폴더에 위치시켜야 하는지가 궁금합니다! |
변종원(웅파)
/
2019/01/22 12:13:24 /
추천
0
core를 수정해서 뷰 디렉토리를 변경할 수 있으나 왜 그렇게 해야하는지 설명이 없는 상태에서는 하지말라고 답변할 수밖에 없습니다. 왜 그렇게 하고 싶은건가요? ^^ |
syrup
/
2019/01/22 12:33:49 /
추천
0
답변 감사합니다! 사이트가 보완작업을 거치고 기능이 추가되면 컨트롤러 파일과 뷰파일이 늘어나면서 사이트의 구조를 한 눈에 파악하기가 점점 힘들어지지 않을까 해서요 이 비유가 맞을지 모르겠지만 추후에 쓸 수도 있는 파일들을 /application/views에 위치시키고 실제로 보여주고 싶은 파일들은 / 경로에 두면 추후에 수정 및 보완 작업시 혹은 다른 개발자가 봤을때 헷갈릴 여지가 없지 않을까 생각했습니다!
조금 더 찾아본 결과 제가 알고자 하는 방식이 기존의 날코딩 방식이라는 것을 알았습니다! 비슷하지만 다르게 질문드리면 제가 현재 작업중인 사이트는 도메인 입력시 나타나는 페이지의 파일이 / 경로에 있는데 /application/config/routes.php 파일에서 $route['default_controller'] 에서 명시한 컨트롤러를 통해 뷰파일을 찾아보니 다른 파일이였습니다. 제가 알기론 위의 $route['default_controller'] 에서 명시한 컨트롤러가 도메인 입력시 기본으로 뜨게 되는걸로 알고 있었는데 어떻게 이게 가능한지 궁금했습니다 |
변종원(웅파)
/
2019/01/22 13:33:46 /
추천
0
그런 상황이면 차라리 application 디렉토리를 2개 두어 application 은 현재 프로젝트, application2는 향후 프로젝트. 이렇게 사용할 수 있습니다. 메소드에 따라 구분을 할건지 혼용할건지에 따라 복잡도가 달라지기는 하지만 프레임워크를 쓰는 이상 프레임워크 사용법 내에서 해결하려고 하는 것이 좋습니다. |
변종원(웅파)
/
2019/01/22 13:36:05 /
추천
0
두번째 질문은 프레임워크의 역할이고 전체 소스에서 default_controller 검색해보세요. 주소에 컨트롤러, 메소드가 없을 경우 그 컨트롤러를 사용하도록 프로그램되어 있습니다.
|
syrup
/
2019/01/22 14:01:58 /
추천
0
감사합니다 웅파님 덕분에 궁금했던게 해결됐습니다!
|
없습니다. 프레임워크를 쓰면서 그렇게 사용할 이유도 없구요.
아마도 아파치 서버에서 index.html이 우선이라 나올지도 모르겠네요