我在位置test.php
创建了一个applications\views\test\test.php
文件,控制器位于application\controller\Test.php
& applications\models\Test_model.php
中的模型。
在我的routes.php
文件中,我添加了$route['test']='test/view'
。
请注意,已经存在一些工作正常的文件,其中一个是login.php
&它在routes.php
中的值为$route['login']='login/view'
。另外这个文件确实有相同的型号和同样位置的控制器文件。
当我尝试访问localhost\test
时,它会给我404错误,而对于localhost\login
则工作得很好。
有人可以帮忙路由吗?我是codeigniter&的新手。我无法解决这个问题。
修改
htaccess工作正常,因为localhost\login
正在与其他几个文件一起正确加载。
编辑2
Test_model.php
<?php
class Test_model extends CI_Model{
public function __construct()
{
$this->load->database();
}
}
?>
test.php的
<div>Testing</div>
test.php的
<?php
class Test extends MY_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('test_model');
}
public function view()
{
$this->loadHeader();
$this->load->view('test/test');
$this->loadFooter();
}
}
?>
routes.php文件
$route['test'] = 'test/view';
编辑3
当我尝试访问localhost\application\controllers\Test.php
时,会出现错误消息,指出Class My_Controller
未找到。但是,当我尝试使用任何其他文件时,login
使用相同的位置,它会给我同样的错误。
所以我猜,它能够找到控制器,因为它显然会出错,但无法加载任何其他内容。
是否有某种配置文件,我必须提及我创建的每个新页面或其他内容?必须要有一些东西。这是非常基本的&amp;我无法找到它的根源。
编辑4
所以这就是问题所在。当我将测试视图文件复制到pages文件夹时,它工作正常。当然在控制器中我编辑了文件的路径。
现在真正的问题是为什么没有名为test的新文件夹在视图下工作?
答案 0 :(得分:0)
创建.htaccess
文件并将此代码粘贴到
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
答案 1 :(得分:0)
最后,罪魁祸首是routes.php
档案中的这一行:
$route['(:any)'] = 'pages/view/$1';
我在这下面添加了其他路线,因此它获得了默认行为。我把它们放在这条线上面&amp;它就像一个魅力。我从没想过这可能是个问题。
行号很重要,现在。