CodeIgniter 2.0 with Modular Extensions(HMVC)在Linux中没有显示任何内容

时间:2011-12-06 11:34:53

标签: codeigniter hmvc modular

*编辑得更清楚

我正在两个环境中部署带有Modular Extensions(HMVC)的CI 2.0.3,一个是Windows-用于开发 - 另一个是Linux用于生产 - 。两个环境都具有相同的文件夹和文件结构。目前我遇到了问题。

按照手册将Modular Extensions集成到CI后。我做的第一件事就是将CI附带的默认Welcome MVC移动到Modular Extensions HMVC。两个环境都已成功移动,可以在浏览器上查看。

但是当我创建其他模块时,它可以在Windows环境中运行,但不能在Linux上运行。在Windows上,当我调用模块时,浏览器按预期显示页面。但在Linux上它只显示白色空白页面。甚至不是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 controller

<?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');
    }

}

这与Linux的文件夹权限有关吗?我将尝试将文件夹权限更改为777并更新你们

之前谢谢

2 个答案:

答案 0 :(得分:2)

您需要扩展MX_Controller而不是CI_Controller

答案 1 :(得分:0)

如果您使用wiredesignz中的HMVC扩展程序,则需要验证是否将MX文件夹放在application/third_party文件夹以及MY_Loader.php和{{1}在MY_Router.php文件夹中。

验证完成后,在application/core文件夹('application / modules`)中创建文件夹modules

现在,这个解决方案有点棘手的是,当您不想创建模块时,默认控制器必须与模块命名相同 - 在配置中指定的默认控制器名称不适用于此。

这意味着如果你创建一个名为`mymodule'的模块,你应该创建一个这样的文件夹/文件结构:

application

在位于application/modules/mymodule - /controllers - - mymodule.php - /views - - whatever.php 的控制器中,您可以像平常一样创建控制器:

application/modules/mymodule/controllers/mymodule.php