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


Why you should use base_url() in relative links (Codeigniter etc.)

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

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

而不是

<a href="/link22.php'>

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

在开发时,有时会有不同版本的文件夹结构,如:localhost/dev/或localhost/beta/

你的直播网站可能会有不同的命名epiapps.com/preview/

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

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

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

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

然后,您可以将本地应用程序文件夹中的任何更改推送到服务器应用程序文件夹,应用程序中的配置文件不会把您搞砸,因为baseurl是在主index.php文件中定义的。

好问题。

短词 (在下面使用)

CI-代码点火器


为什么要使用base_url()

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


哪里可以修改/定义base_url()

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

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

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

如何加载

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

存在类似于该CCD_ 10的功能。因此,将助手添加到中

$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框架中预先定义的(Codeigniter+User)变量,我们可以使用它来完成整个项目。因此,为了显示php中变量的内容,我们使用echo。这里也有同样的理论。


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

Codeigniter框架使用MVC结构构建。(MVC代表M模型V视图C控制器。)

因此,当打开您的项目时,它将调用Controller,然后如果有来自数据库的任何传入值。它将从模型中获取,然后加载控制器提到的相关视图

如果此link22.php是与您的项目相关的文件,则必须将其放置在View文件夹中。


我可以将php文件包括在另一个视图中吗

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

示例-假设link22.phpview/links/内,因此必须使用

APPPATH.'view/links/link22.php'

一些有用的链接

  1. URL帮助程序

刚刚发现这一点,如果有人觉得这有帮助,请使用它如果您在本地主机上使用自定义端口在中提及

application/config/config.php

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