我目前正在开发一个具有特定体系结构的系统(而不是我的(。在主应用程序文件夹中,有一个通用资产和另外两个具有相同资产的文件夹(用户和管理员(,它们为我们提供了这样的架构:
- 应用程序
- 管理员
- 配置
- 控制器
- 等等
- 用户
- 配置
- 控制器
- 等等
- 控制器
- 等等
- 管理员
在根文件夹中,有两个文件:user.php
和admin.php
,除了行之外,它们的代码都与经典的index.php
中的代码相同
$application_folder = 'application/admin';
到目前为止,代码正在运行。。。但我发现了一种奇怪的反应。在我的文件夹admin
中,在一个控制器下,我正在调用一个方法,它除了一件事之外都能工作。。。视图没有正确加载。
在所有其他方法中,我都有这种代码,只有一个参数:
public function results($param){
$data = [];
//some other code
$this->load->view("election/header");
$this->load->view("election/menu");
$this->load->view("election/results", $data);
$this->load->view("election/footer");
}
这非常有效,但当我有了第二个参数时,奇迹般的是,该方法不再显示页眉/菜单/页脚。只有自定义视图result
。。。我还发现,例如,如果我随机向预览方法results
添加另一个参数,同样的错误也会发生。页眉/页脚/菜单不再正常显示。我想路由/htaccess或段有问题。。。但我不能把我的手指放在上面…
这是根.htaccess
文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^kanri(/(.*))?$ admin.php?/$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user(/(.*))?$ user.php?/$2 [L]
</IfModule>
和admin/routing.php
$route['default_controller'] = 'login';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
谢谢你抽出时间!
多亏了D.Dimitrov,解决方案很简单。我只需要使用site_url()
函数来替换相对路径。我还不完全理解为什么,但既然它起作用了,一切都很好:>