我已经花了好几个小时才使一个简单的锚链工作没有成功。
我的控制器是
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('template');
}
public function contact()
{
$this->load->view('contact');
}
}
我的template.php
视图基本上是一个带
<a class="menuhref"> <?php echo anchor('welcome/contact/','Contato')?> </a>
我在views目录中也有一个contact.php。
我的config.php
是
$config['base_url'] = 'localhost';
$config['index_page'] = 'index.php';
当template.php
加载并点击链接“contato”时,我想将系统驱动到负责打开页面contact()
的函数contact.php
。但是,我有以下错误:
在此服务器上找不到“/ localhost / index.php / welcome / contact”
缺少什么?
答案 0 :(得分:3)
base_url
配置必须包含协议和尾随斜杠。
来自config.php
文件:
CodeIgniter根目录的URL。通常,这将是您的基本网址,
带尾部斜杠:http://example.com/
如果未设置,则CodeIgniter将猜测协议,域
和安装的路径。
因此,您可以按如下方式设置base_url
,或者在这种情况下,只需将其留空:
$config['base_url'] = 'http://localhost/';
# base_url should be absolute, If you've installed CI in sub-folder:
$config['base_url'] = 'http://localhost/path/to/codeigniter_folder/';
旁注:,以便首先使用{hel}文件之类的网址帮助功能,加载帮助文件:anchor()
(或通过$this->load->helper('url');
配置文件自动加载帮助程序。)
autoload.php
配置会影响base_url
功能? anchor()
函数,uses site_url()
辅助函数,用于确定超链接的URL地址。
site_url()
本身,uses two base_url
and index_page
配置创建URL地址。
因此,如果您为anchor()
和/或base_url
配置分配了错误的值,则index_page
功能将无法正常运行。