*编辑得更清楚
我正在两个环境中部署带有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并更新你们
之前谢谢
答案 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