我正在使用 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/