【发布时间】:2021-11-11 20:41:30
【问题描述】:
我有一个控制器,名为 About:
<?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 函数在 basecontroller 中如下:
public function _renderPage($view, $data = [])
{
$data = array_merge($this->data, $data);
$data['_html_content'] = view('Home/' . $view, $data);
return view('Home/page', $data);
}
我的文件夹结构是:
-
应用程序
-
-Controllers -
- About -
- Home -
- Contact
我的视图文件如下:
- 观看次数
-
-Home -
-Contact - index.php -
-About - index.php -
- ...
我参考的方式是
<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
【问题讨论】:
-
你添加路由到 Routes.php 了吗?
-
是的。如,
$routes->add('about', 'About::index'); -
您能否包含您的视图文件以确保所有内容都存在?
-
我已经进行了编辑并显示了我的文件夹结构以供查看
标签: .htaccess codeigniter