繁体   English   中英

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

[英]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 /

并且您的实时网站可能与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中,基本URL为空。 $config['base_url'] = '';

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

好问题。

简短的词 (在下面使用)

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


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

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

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

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


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

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

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

APPPATH.'view/links/link22.php'

一些有用的链接

  1. URL助手

如果你在你的本地主机提醒中使用自定义端口,那么如果有人发现这有用,那就发现这个用了

应用/配置/ config.php中

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM