php - 导航菜单在 CodeIgniter 中无法正常工作

标签 php html css codeigniter

我正在使用 CodeIgniter v3.1.3。根据“静态页面”教程,我正在尝试创建一个包含 5 个页面的静态网站,例如主页、关于、服务、投资组合和联系方式。

我在 'application/controllers' 目录中有一个 Pages.php Controller 。

我的 Pages.php Controller 看起来像

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Pages extends CI_Controller {
    //Controller logic
    public function view($page = 'home')
    {
        if(!file_exists(APPPATH.'views/pages/'.$page.'.php')){
            //Whoops!, we don't have a page for that
            show_404(); //In-built CI function to show 404 error pages
        }

        $data['title'] = ucfirst($page); //Capitalize the first letter
        $this->load->view('templates/header',$data);
        $this->load->view('pages/'.$page,$data);
        $this->load->view('templates/footer',$data);
    }
}

我还在 'application/views/pages' 中创建了 5 个静态页面,例如 home.php、about.php、services.php、portfolio.php、contact.php

页眉和页脚的通用代码存在于'application/views/templates',如footer.php 和header.php。 我在 header.php 中的导航菜单看起来像

<li><a class="curr_menu" href="<?php echo base_url('pages/view/home');?>">Home</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/about');?>">About Us</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/services');?>">Services</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/portfolio');?>">Portfolio</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/contact');?>">Contact Us</a>
</li>

我的 routes.php(application/config/routes.php) 看起来像

$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';

主页显示初始加载,但是当我点击任何菜单项时,它返回“404 页面未找到”错误。

有人可以解释 - 使用清晰的代码 - show 使我的菜单工作。 根目录下的 .htaccess 包含

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

最佳答案

我强烈建议您通过在地址栏中手写 URL 来手动导航到所需的页面,以确保错误来自链接构建。

如果是这样,那么尝试使用

<?php echo site_url('pages/view/home');?>

关于php - 导航菜单在 CodeIgniter 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41962583/

相关文章:

javascript - 从输入类型文件中获取值

php - 如何检查mysql查询是否成功

html - 覆盖特定宽度的媒体查询 - CSS

css - 使用哪种字体以获得一致的在线体验?

php - 解析错误 : syntax error, 意外 '->' (T_OBJECT_OPERATOR)

php - 服务器端验证,客户端通知?

jquery - AngularJS 在数组元素中设置动态键

javascript - 是否可以在没有 removeEventListener 的情况下删除事件监听器?

HTML 图片链接下方有一个蓝色的小勾号

html - 没有固定高度的水平滚动 div,所有包含的 div 最高 child 的高度