404 — Файл Не найден Контроллер или его метод не найден: AppКонтроллерыIvy::codeignitor

#.htaccess #codeigniter

Вопрос:

У меня есть контроллер, названный примерно:

 <?php

namespace AppControllers;

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 — Файл не найден
Контроллер или его метод не найден: AppКонтроллерыIvy::codeignitor при вводе URL-адреса:

 localhost:8080/myproject/about
 

Комментарии:

1. Вы добавили маршрут в Routes.php ?

2. ДА. Как, $routes->add('about', 'About::index');

3. Не могли бы вы включить свои файлы просмотра, чтобы убедиться, что все существует?

4. Я внес правку и показал свою структуру папок для представлений

Ответ №1:

попробуйте <?= base_url()?> вместо этого <?= site_url()?>