【发布时间】:2026-02-24 04:15:01
【问题描述】:
我目前正在开发具有特定架构的系统(不是我的)。在主应用程序文件夹中,有 common 资产和其他 2 个具有相同资产的文件夹(用户和管理员),这给了我们这样的架构:
- 申请
- 管理员
- 配置
- 控制器
- 等等...
- 用户
- 配置
- 控制器
- 等等...
- 控制器
- 等等...
- 管理员
在根文件夹中,有 2 个文件: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;
感谢您的宝贵时间!
【问题讨论】:
-
是没有加载页眉/菜单/页脚,还是加载了,但是资产不匹配?
-
如何检查是否是这种情况?
-
你的样式(css)和js文件加载正确了吗?
-
这就是我的意思。您可以使用
<?php echo base_url('path to your css/js'); ?>解决问题,您必须编辑您的页眉和页脚。在您的config.php中,您会发现$config['base_url']应该设置为您的域(例如),包括尾部斜杠/。 -
好的,所以,是的...所有路径都已手动设置...使用
site_url将其替换为相对路径似乎可以解决我的问题。谢谢你的帮助。这很简单……祝你有美好的一天!
标签: php .htaccess codeigniter