2011-12-06 7 views
0

에 표시되지 아무것도 *, 하나는 개발 용 - 윈도우입니다 - 다른 하나는 생산을위한 Linux입니다. 두 환경 모두 폴더와 파일 구조가 동일합니다. 현재 문제가 있습니다.CodeIgniter의 2.0 (HMVC) 더 명확하게 내가 두 환경에서 모듈 형 확장 (HMVC)와 CI 2.0.3을 배포하고 있습니다</p> <p>로 편집 리눅스

설명서에 따라 Modular Extensions를 CI에 통합 한 후. 내가했던 첫 번째 작업은 CI와 함께 제공되는 기본 환영 MVC를 모듈 식 확장 HMVC로 이동하는 것이 었습니다. 두 환경 모두 성공적으로 이동했으며 브라우저에서 볼 수 있습니다.

하지만 다른 모듈을 만들면 Windows 환경에서 작동하지만 Linux에서는 작동하지 않습니다. Windows에서 모듈을 호출하면 브라우저가 페이지를 예상대로 표시합니다. 하지만 리눅스에서는 그냥 빈 흰색 페이지 만 보여줍니다. 404 오류 페이지도 아니며, 이는 깨진 링크가 아니라는 것을 의미합니다.

CI에서 무엇이 잘못 됐는지 알 수 있습니까?

디렉토리 구조

/application 
-/cache 
-/config 
-/controllers 
-/core 
--MY_Loader.php 
--MY_Router.php 
-/errors 
-/helpers 
-/hooks 
-/language 
--/english 
-/libraries 
-/logs 
-/models 
-/modules 
--/csv_game_credit 
---/controllers 
----csv_game_credit.php 
---/models 
----csv_game_credit_db.php 
---/views 
----welcome_message.php 
--/welcome 
---/controllers 
----welcome.php 
---/views 
----welcome_message.php 
-/third_party 
--/MX 
--Base.php 
--Ci.php 
--Config.php 
--Controller.php 
--Lang.php 
--Loader.php 
--Modules.php 
--Router.php 
-/views 

에 오신 것을 환영 컨트롤러

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Welcome extends CI_Controller { 

    public function index() 
    { 
     $this->load->view('welcome_message'); 
    } 
} 

Csv_game_credit 컨트롤러

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Csv_game_credit extends CI_Controller { 

    function __construct() { 
     parent::__construct(); 
     $this->load->model('Csv_game_credit_db'); 

     $this->load->dbutil(); 
     $this->load->helper('file'); 
    } 

    public function index() 
    { 
     $this->load->view('welcome_message'); 
    } 

} 

이 리눅스의 폴더 권한을 함께 할 수있는 뭔가가 있나요? 나는 777에 폴더 권한을 변경하고 너희들

을 업데이트하려고합니다

감사 전에 당신은 당신이 application/third_party 폴더와 MY_Loader.phpMX 폴더를 넣어 있는지 확인해야

+2

을 확장 할 필요가 타르트. –

+0

index()에서보기를 호출해야합니다. _ 매우 부드럽게 _ – stormdrain

+0

환영 모듈은 Csv_game_credit와 동일한 파일 및 폴더 권한을 갖습니다. 그래서 그것이 원인이라고 생각하지 않습니다. –

답변

0

당신이 wiredesignz에서 HMVC 확장자를 사용하는 경우 application/core 폴더의 MY_Router.php입니다.

확인되면 폴더를 application 폴더에 만듭니다 ('application/modules`).

이제이 솔루션에 대해 약간 까다로운 점은 모듈을 만들지 않을 때 기본 컨트롤러의 이름이 모듈과 동일해야한다는 것입니다. config에 지정된 기본 컨트롤러 이름은 ' 여기에 신청하십시오. 당신은 당신 같은 컨트롤러를 만들고 컨트롤러에서

application/modules/mymodule 
- /controllers 
- - mymodule.php 
- /views 
- - whatever.php 

, application/modules/mymodule/controllers/mymodule.php에 위치 :

는`인 MyModule '라는 모듈을 작성하는 경우,이 같은 폴더/파일 구조를 만들어야한다는 것을 의미 일반적으로 할 것 :

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Mymodule extends CI_Controller { 

    public function index() 
    { 
    $this->load->view('whatever'); 
    } 

} 
2

당신은 좋은의 것이 당신의 컨트롤러와 뷰 코드를 게시 MX_Controller하지 CI_Controller