404 - 文件未找到控制器或其方法未找到:\App\Controllers\Ivy::codeignitor

问题描述 投票:0回答:1

我有一个控制器,名为“关于”:

<?php

namespace App\Controllers;

class About extends BaseController
{
     public function __construct()
    {
        
        $this->data['site_title'] = "About Us";
    }

    public function index()
    {
        //return view('welcome_message');
        return $this->_renderPage('About/index', $this->data);

    }
}

render_page 函数位于基本控制器中,如下所示:

 public function _renderPage($view, $data = [])
{
    $data = array_merge($this->data, $data);
    $data['_html_content'] = view('Home/' . $view, $data);
    return view('Home/page', $data);
}

我的文件夹结构是:

  1. 应用程序

  2.  -Controllers
    
  3.             - About
    
  4.             - Home
    
  5.             - Contact
    

我的查看文件如下:

  1. 观点
  2.   -Home
    
  3.         -Contact
                     - index.php
    
  4.         -About
                     - index.php
    
  5.         - ...
    

我参考的方式是

<a href="<?php echo site_url('about') ?>">About</a>

我的 .htaccess 文件有这行代码:

 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f    
 RewriteCond %{REQUEST_FILENAME} !-d    
 RewriteRule ^(.+)$ index.php/$1 [L]

为什么我仍然收到错误:404 - 文件未找到 当我输入 url 时,找不到控制器或其方法:\App\Controllers\Ivy::codeignitor:

localhost:8080/myproject/about
php .htaccess codeigniter routes
1个回答
0
投票

尝试

<?= base_url()?>
代替
<?= site_url()?>

© www.soinside.com 2019 - 2024. All rights reserved.