CodeIgniter 网站 URL 与基本 URL 的区别

7

你好,请问SiteUrl()和BaseUrl()有什么区别呢? 在我的之前的项目中,使用的是BaseUrl(),而现在的新项目中却使用SiteUrl(),这是为什么呢? BaseUrl()是否已经过时了?


可能是what is the difference between site_url() and base_url()?的重复问题。 - Nam G VU
3个回答

7

图片/脚本/css路径的基础URL。 用于访问控制器的地址URL的站点URL。

echo base_url(); // http://example.com/path/to/your/ci/install
echo site_url(); // http://example.com/path/to/your/ci/install/index.php 

你可以参考这个论坛: http://ellislab.com/forums/viewthread/113974/

1
这是参考链接:http://ellislab.com/codeigniter%20/user-guide/helpers/url_helper.html - Frank Conry
1
如果我使用 .htaccess 删除 index.php 文件,那么我是否可以始终使用 base_url? - Lucas Bustamante
@KumarV,我只是想知道锚点标签的最佳选择是什么? - user9437856
@user9437856,如果您想使用CI锚点,则必须使用anchor(uri segments, text, attributes)。否则,您可以在href中使用带有site_url()的普通HTML a标签。 - Kumar V
谢谢,@KumarV,所以我正在使用这样的方式<a href="<?php echo site_url()?>/about.php"></a>。这是最佳实践吗? - user9437856

5
为了消除您所有的疑惑,您需要阅读CodeIgniter手册。请点击这里

返回您的站点基本URL,就像在配置文件中指定的那样。例如: echo base_url();

此函数返回与site_url相同的内容,但不会附加index_page或url_suffix。

与site_url一样,您可以将片段作为字符串或数组提供。以下是字符串示例:echo base_url("blog/post/123");

站点URL 返回站点的URL,如在配置文件中指定。index.php文件(或您在配置文件中设置为站点index_page的任何文件)将被添加到URL中,以及您传递给函数的任何URI段和在配置文件中设置的url_suffix。
鼓励您在需要生成本地URL时使用此函数,以便在URL更改时使页面更加可移植。
可以选择将段作为字符串或数组传递给函数。以下是一个字符串示例:echo site_url("news/local/123");
上面的示例将返回类似于:http://example.com/index.php/news/local/123 的内容。
这是一个将段作为数组传递的示例:$segments = array('news', 'local', '123');
echo site_url($segments);

0
毫无疑问,kumar_v和nidheesh的答案是完全正确的。然而,我想补充一下何时使用base_url()和site_url()。基本上,我们可以在创建控制器链接时使用site_url(),而在需要创建资产的URL(如加载CSS或JS文件或某些图像)时可以使用base_url()。
我总是喜欢使用site_url()来创建控制器或ajax URL的链接,而使用base_url()来加载资产。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接