我从视图调用控制器函数,使用基本URL它将转到该函数,但显示404 Page Not Found。 .htaccess我正在使用的是这个
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
的config.php
$config['index_page'] = '';
autoload是
$autoload['helper'] = array('form', 'url', 'security');
routes.php中的默认控制器是
$route['default_controller'] = 'prog_bar';
base_url是
$config['base_url'] = 'http://localhost:8080/jsLearning/prog_bar/';
视图
a href="<?php echo base_url().'file_func'; ?>">abc</a>
控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class prog_bar extends CI_Controller {
public function index()
{
$this->load->view('prog_bar_view');
}
public function file_func(){
echo "form";
}
}
我还缺少什么?
答案 0 :(得分:1)
班级名称应以大写字母开头, 改变这个
class prog_bar extends CI_Controller {
到
class Prog_bar extends CI_Controller {
答案 1 :(得分:0)
您的base_url
错了。它应该是
$config['base_url'] = 'http://localhost:8080/jsLearning/';
现在在HTML中使用site_url()
代替base_url()
<a href="<?php echo site_url('prog_bar/file_func'); ?>">abc</a>
base_url()
应仅用于资源链接,如图像文件,css文件等
按照
更新.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
答案 2 :(得分:0)
我认为你应该对下面的设置很好:
在Config.php中:
$config['base_url'] = 'http://localhost:8080/jsLearning/';
在您的视图中:
<a href="<?php echo base_url(); ?>file_func">abc</a>
在您的控制器中:
class Prog_bar extends CI_Controller {
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
如果您仍然有错误,请检查您的base_url链接到什么...创建一个链接
<a href="<?php echo base_url(); ?>">Base Url</a>
在浏览器中查看链接的位置。
答案 3 :(得分:0)
您不会将基本网址用于网站内的链接。使用控制器名称和方法名称
<?php echo anchor("Pages/entry", "Post Entry"); ?>
什么是表格?它没有定义。这是一个页面吗?如果是这样,你没有查看地址。如果是一个片段,您仍然需要一个地址
$this->load->view('prog_bar_view')
一个函数不会简单地显示视图或片段,而不会被告知它在哪里。如果您尝试在页面中包含表单,则只需使用嵌套视图,并在主(html)视图中加载您尝试使用$ this-&gt; load-&gt; view()
显示的视图