【发布时间】:2014-05-29 20:19:52
【问题描述】:
我正在尝试使用我的 index.php 在网站根目录中的“公共”文件夹/Applications/MAMP/htdocs/public/ 中构建一个 CodeIgniter 应用程序。我已经设置我的虚拟主机等指向这个 index.php 文件。我想采用基于模块的方法,因此最终使用了 Modular Extensions - HMVC 。我把核心文件和第三方文件放在了相应的文件夹中,并在应用程序文件夹中创建了一个modules文件夹。然后我继续在模块文件夹中创建一个“登录”模块以及所需的“控制器/登录.php”、“模型”和“视图”
class Login extends MX_Controller{
public function index()
{
log_message('error','reached module');
}
}
现在当我尝试加载 http://localhost/login 时,我在 apache_error.log 中得到一个错误日志,说
File does not exist: /Applications/MAMP/htdocs/public/login
http://localhost 可以正常显示 CodeIgniter 的欢迎屏幕
点火器
这是路径结构:
application/modules
└── login
├── config
│ └── routes.php
├── controllers
│ └── login.php
└── views
└── login.view.php
modules/login/config/routes.php 的内容
<?php
$route['login'] = 'login';
httpd-vhosts 配置:
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/public"
SetEnv APP_ENV development
<Directory "/Applications/MAMP/htdocs/public">
Options Indexes FollowSymLinks Includes execCGI
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
</VirtualHost>
【问题讨论】:
-
难道你不应该使用 modules::run('module/login', $params, $...) 而不是 $this->load->view 吗?
-
尝试一些东西 $application_folder = '../application';只是一个想法可能会奏效,想想你的应用程序文件夹在哪里。
-
已更新
$application_folder.. 否则它将无法从publicfolder 内部工作 -
@Bonatoc - 也尝试过...我在 index() 中添加了一条日志消息,但它从未到达那里..
-
是模块文件夹中的控制器 modules/folder/file 在路由中可能还需要添加 $route['controllername'] "folder/controllername/index";要让默认控制器或路由在子文件夹中工作,只需在最后添加索引。必须在应用程序的模块文件夹中。
标签: codeigniter mamp codeigniter-hmvc