Codeigniter网址问题

时间:2017-11-12 08:19:48

标签: codeigniter

我是codeigniter的新手,我正在阅读教程。我创建了一个新的控制器,当我尝试创建如下所示的链接时,它会抛出一个错误。

<p><a href="dashboard">Dashboard</a></p>

然而,当我更改如下所示的链接时,一切正常。

<p><a href="<?php echo base_url(); ?>dashboard">Dashboard</a></p>

这是Codeigniter的工作原理吗?我有没有办法在不使用base_url的情况下每次构建链接?

P.S。现在我不在乎链接中的index.php。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用基础https://www.w3schools.com/tags/tag_base.asp

<head>
   <base href="<?php echo base_url();?>">
</head>

然后你应该可以使用像

<p><a href="dashboard">Dashboard</a></p>
  

确保您已设置如下所示的基本网址,并以/

结尾
$config['base_url'] = 'http://localhost/yourproject/';

$config['base_url'] = 'http://www.yourdomain.com/;

并自动加载网址助手config / autoload.php

$autoload['helper'] = array('url');
  

提示:确保您的控制器文件以第一个字母开头,大写相同,同样适用于班级名称

https://www.codeigniter.com/user_guide/general/styleguide.html#file-naming

示例:

文件名:Dashboard.php

<?php

class Dashboard extends CI_Controller {
    // code
}

答案 1 :(得分:0)

最有可能的问题是因为使用了相对URL。 例如,当您使用更深层次的URI段时,这些将不起作用。 考虑下面几个例子:

如果您的应用程序的基础是http://www.example.com/,您应该通过设置$config['base_url'] = 'http://www.example.com/';在配置文件中设置,当您使用浏览器访问该URL时,以及当您点击某个相对URL时,您将被指向/重定向到由相对链接附加的当前URL的URL。

http://www.example.com/ => http://www.example.com/dashboard

但如果您处于某个更深层次的细分市场,我们会说http://www.example.com/index/15dashboard会延伸那个,但您希望它指向http://www.example.com/dashboard

http://www.example.com/index/15 => http://www.example.com/index/15/dashboard

正如其他人所说,你应该设置和使用base_url() CodeIgniter内置函数(使用附录作为函数base_url('dashboard')的参数)。 如果您想在没有base_url('some-page')函数的情况下使用它,则应使用相对于服务器路由1的绝对URL。 后一个看起来像前面的斜杠,它告诉Web服务器使用.htacces文件或虚拟主机环境设置/dashboard中定义的根位置。在你以前的例子中

<p><a href="/dashboard">Dashboard</a></p>

应该运作得很好。 如果它不起作用,则需要在.htaccess文件中设置RewriteBase属性。 在此处查看this comment并查看一些描述相对和绝对网址之间差异,优缺点的文章