我目前正在开发我的个人博客,但我的路线有问题。假设我有一个名为
的控制器博客
<?php
class Blog extends CI_Controller {
public function index(){
$data['posts'] = $this->BlogModel->get_post();
$this->load->view('frontend/header');
$this->load->view('frontend/navbar');
$this->load->view('frontend/BlogContent',$data);
$this->load->view('frontend/footer');
}
public function view($slug = NULL){
$data['post'] = $this->BlogModel->get_post($slug);
if(empty($data['post'])){
show_404();
}
$data['title'] = $data['post']['title'];
$this->load->view('frontend/header');
$this->load->view('frontend/navbar');
$this->load->view('frontend/blog/view',$data);
$this->load->view('frontend/footer');
}
}
?>
我的路线如下:
$route['blog/(:any)'] = 'blog/view/$1';
$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
然后我尝试访问此部分http://localhost/cathode/blog/post-one正常工作
但是在访问这些部分后尝试访问导航栏菜单时,我的base_url包含在“博客”控制器中。
所以当我尝试访问“主页”菜单时,路线将指向http://localhost/cathode/blog/home,实际上我的base_url为http://localhost/cathode/,我该如何解决此问题?
由于
答案 0 :(得分:0)
根据给定的信息,假设很少,我认为你的导航栏就像:
<a href="home">Home</a>
然而,您必须像这样添加 base_url()
:
<a href="<?= base_url('home'); ?>">Home</a>
如果您有问题,请告诉我。
从提供的HTML代码:
<li class="nav-item ">
<a class="nav-link" href="<?php base_url();?>home">
HOME <span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php base_url();?>about">ABOUT</a>
</li>
替换 <?php base_url(); ?>
要 <?php echo base_url();?>
或 <?= base_url();?>
答案 1 :(得分:0)
尝试在echo
之前添加base_url()
,如下所示:
...
<li class="nav-item "> <a class="nav-link" href="<?php echo base_url(); ?>home">HOME <span class="sr-only">(current)</span></a> </li>
<li class="nav-item"> <a class="nav-link" href="<?php echo base_url(); ?>about">ABOUT</a> </li>
...