为什么你应该在相对链接中使用base_url()(Codeigniter等)

时间:2015-11-02 15:55:43

标签: php codeigniter relative-path base-url

为什么在相对链接中我应该始终在CodeIgniter中使用语法 base_url + link? 例如:

<a href="<?php echo base_url()?>link22.php">

而不是

<a href="/link22.php'>

当我在HTML头中声明<base href="<?php echo base_url()?>">时? 有什么好处?

3 个答案:

答案 0 :(得分:2)

有时您正在开发中,您将拥有不同版本的文件夹结构,例如: localhost / dev /或 本地主机/β/

并且您的实时网站可能是不同的命名 epicapps.com/preview /

通过使用base_url(),您可以映射到本地副本上的localhost / beta /, 和公共服务器上的epicapps.com/preview。

提示:您可以在主index.php页面上设置base_url。像

$assign_to_config['base_url'] = 'http://localhost/beta/';   

并确保在application / config.php中基本网址为空。 $config['base_url'] = '';

然后您可以将任何更改从本地应用程序文件夹推送到服务器应用程序文件夹,并且应用程序中的配置文件不会弄乱您,因为base_url正在主index.php文件中定义。

答案 1 :(得分:2)

好问题。

简短的字词 (在下面使用)

CI - Codeigniter

为什么要使用base_url() ??

base_url()是一个确定项目目的地的函数,它在php中充当$_SERVER['REQUEST_URI']。这将知道您的实际项目包含的位置。

我们可以修改/定义base_url() ??

Path - application/config/
File name - config.php

我们可以使用base_url()函数吗?

没有。你不能。在CI中,他们有一些帮助,这有助于我们使用CI更友好。因此,base_url()帮助文件调用 url

如何加载?

Path - application/config/
File name - autoload.php

有这样的功能$autoload['helper'] = array();。所以将帮助器添加到

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

是否有任何方法可以修改/定义base_url() ??

是。您可以定义两种方法base_url()

方法01

$config['base_url'] = '';

方法02

$config['base_url'] = 'http://localhost/foldername/';

方法01(M1)方法02(M2)之间的区别

M1 - 当我们保持空base_url时,它会自动确定您的项目范围。因此,当你无法找到路径或怀疑时,建议这样做 M2 - M1之间没有区别,在这里你知道路径。所以可以定义它。

哪种方法好/推荐?

正如我的建议方法01 是最好的。

为什么我们使用echo base_url()而不是base_url()

base_url()是CI框架中 pre + defined (Codeigniter + User)的变量,我们可以使用整个项目。因此,要在php中显示变量的内容,我们使用echo。在这里也有同样的理论。

为什么<a href="/link22.php'>不起作用

使用 MVC 结构构建Codeigniter Framework。 ( MVC 代表 M odel V iew C ontroller。)

因此,当打开您的项目时,它将调用 Controller ,然后是否有来自Database的传入值。它将从模型获得,然后它将加载控制器中提到的相关视图

如果此link22.php是您项目的某个相关文件,则必须将其放在查看文件夹中。

我可以将php文件包含到另一个视图

是。您可以。为此,您必须使用APPPATH

示例 - 假设link22.phpview/links/内,所以你必须使用

APPPATH.'view/links/link22.php'

一些有用的链接

  1. URL Helper

答案 2 :(得分:0)

如果有人发现这有用的话,就发现这个用了 如果您在本地主机上使用自定义端口 在你的

中提及
  

应用/配置/ config.php中

$config['base_url'] = 'http://localhost:portNo';