You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CI3开发POS系统路由重定向异常问题求助

问题分析与解决方案

问题根源

路由跳转异常是因为相对路径导致的URL叠加:

  • 当当前页面处于sitename/sistem路径下时,点击相对路径sistem/menu会自动拼接成sitename/sistem/sistem/menu
  • 同理,点击dashboard会变成sitename/sistem/dashboard而非预期的sitename/dashboard
    数据库中存储的URL格式本身没问题,但前端渲染时未使用绝对路径,导致跳转逻辑错误。

解决方案

1. 确保Base URL配置正确

打开application/config/config.php,确认base_url已正确设置(根据部署环境调整):

$config['base_url'] = 'http://localhost/你的项目名/';
// 线上环境示例:$config['base_url'] = 'https://你的域名/';

2. 修改侧边栏的URL渲染逻辑

在sidebar.php中,将子菜单的href从相对路径改为绝对路径,使用CodeIgniter内置的base_url()函数拼接:

// 原代码
<a class="menu-item" href="<?php echo $submenu['url']; ?>">

// 修改后
<a class="menu-item" href="<?php echo base_url($submenu['url']); ?>">

3. 验证控制器跳转逻辑(可选)

控制器中的redirect('sistem')无需修改,CodeIgniter的redirect()函数默认会基于base_url生成正确的绝对路径,但如果之前base_url未配置,需先完成步骤1。

原理说明

base_url()会生成你配置的站点根路径,拼接数据库中存储的sistem/menu后,会得到完整的绝对路径http://localhost/项目名/sistem/menu,无论当前页面处于哪个路径下,点击后都会直接跳转到正确地址,避免相对路径的叠加问题。

内容的提问来源于stack exchange,提问作者arcahyadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:54:24