URL 辅助函数文件包含了一些帮助你处理 URL 的函数。

加载辅助函数后,你可以使用base_url(),site_url(),current_url()等一些列函数,但是有时候你会遇到这种问题,就是你尝试输出这些函数的值的时候,你会得到http://::1/ci/等类似的结果,即期望的localhost/ci/或者127.0.0.1/ci/ 变成了 http://::1/ci/

我到处搜集信息,想知道为啥会出现这样的结果,然后有人说这是ipv6的地址,需要关闭ipv6功能,我试了,结果当然是失败了。

我们一般在引用其他路径下的文件时才会用到base_url()函数,因为我们可以把他的结果连接上一个路径的字符串,就可在文件中引用或包含所需的文件了,比如我要ci/style/test.css文件,那我在其他文件里面可以用下面一行代码实现

<?php
$path = base_url()."style/test.css";
?>

但是这是我们想当然,你会发现,$path当做路径去访问的时候,因为$path=http://::1/ci/style/test.css,访问不了

查看网页源代码,发现代码是这样的

<link rel="stylesheet" href="http://::1/ci/style/test.css" />

然后我点了一下那个链接,跳转到一个空的页面,证明浏览器也没找到。

这个时候,我上网百度,谷歌了不止一下下,大家都说要设置application/config/config.php中的$config['base_url']的值

$config['base_url'] ='';

 要在这里加内容,这里的路径值就是函数base_url()的值,但是我发现及时改成

$config['base_url']='localhost';
//或者
//$config['base_url']='E:/phpstudy/www/ci/';

但是发现依旧不对,然后我将鼠标定位到该链接,然后看浏览器左下角的链接,显示的是localhost/ci/localhost/ci//style/test.css

这个时候,我就将$config['base_url']的值清空,然后在引用文件的地方直接用style/test.css,居然成功了

但是,我并不知道为什么。

于是我就去看了一下base_url()的源码

base_url()在system/core/config.php中的.php函数中,源码是这样的

class CI_Config {
var $config = array();
var $is_loaded = array();
var $_config_paths = array(APPPATH);
function __construct(){
$this->config =& get_config();
log_message('debug', "Config Class Initialized"); // Set the base_url automatically if none was provided
if ($this->config['base_url'] == ''){
if (isset($_SERVER['SERVER_ADDR'])){
$base_url = (empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) === 'off') ? 'http' : 'https';
$base_url .= '://'.$_SERVER['SERVER_ADDR'];
$base_url .= substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME'])));
}
else{
$base_url = 'http://localhost/';
} $this->set_item('base_url', $base_url);
}
}

然后我找到输出http://::1的原因了,因为一个$_SERVER['SERVER_ADDR'],其中,$_SERVER['SERVER_ADDR']的值就是::1/,难怪不得,我马上把他改为$_SERVER['HTTP_HOST'],然后依旧保持$config['base_url']为空,然后,成功了

在其他界面只需要

$path=base_url().'style/test.css’;

然后就可以了

其实做到这里,我还是有点疑惑,如果你看到这篇博客,如果你有什么见解,请一定要留言,我会非常感谢的

CodeIgniter中使用base_url()时显示http://::1/ci/的更多相关文章

  1. asp.net中当服务器出错时显示指定的错误页面

    http://blog.csdn.net/helloxiaoyu/article/details/2943537 此篇文章描述了当异常再ASP.NET中发生时怎样使用C#.NET代码去拦截和相应异常. ...

  2. ueditor与mvc4中坑 -编辑时显示源码问题

    最近一次使用 ueditor 时,在MVC中的修改新闻内容时发现,怎么调用都是编辑器保存下来的源码,代码如下 <script id="ucontent" name=" ...

  3. mysql中插入中文时显示乱码

    在插入mysql的时候参数是中文的时候显示的是???乱码,这个是由于没有配置字符编码引起的 只要在SqlMapconfig.xml文件中加上<property name="url&qu ...

  4. 向mysql数据库中插入数据时显示“Duplicate entry '1′ for key ‘PRIMARY' ”错误

    错误情况如题,出现这个错误的原因十分简单: 很明显,这是主键的问题. 在一张数据表中是不能同时出现多个相同主键的数据的 这就是错误的原因,解决的方法: 1.可以将这张表设置成无主键(mysql支持,其 ...

  5. jquery mobile 请求数据方法执行时显示加载中提示框

    在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更 ...

  6. Flex中如何通过showAllDataTips属性使鼠标移动到图表时显示所有的数据Tips的例子

    原文 http://blog.minidx.com/2008/11/10/1616.html 接下来的例子演示了Flex中如何通过showAllDataTips属性,使鼠标移动到图表时显示所有的数据T ...

  7. Linux故障:linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0"。

    linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0".   ...

  8. ie6 表格td中无内容时不显示边框的解决办法

    1.在单元格中加入一个空格.这样: <td> </td> 2.直接在table里这样写:<table border="0" cellspacing=& ...

  9. JS文件中的中文在网页引用时显示乱码的简单解决方式

    今天把一个jquery方法从前台cshtml文件转移到单独的js文件中后执行不成功,调试发现if判断中的中文字符串变成了乱码,之前在前台文件中是可以正常显示的,所以判定可能是跟文件的编码方式有关系. ...

随机推荐

  1. 用JQuery操作元素的style属性

    可以直接利用css()方法获取元素的样式属性,JQuery代码如下: 1 $("p").css("color");  //获取p元素的样式颜色 无论color属 ...

  2. Ubuntu18.04安装Tensorflow+cuda+cuDNN

    本文写的比较简单,期间遇到的一些小麻烦,自己不认为成为阻碍,所以没有详细写. 如有疑问可以联系QQ:2922530320 Pycharm Pycharm使用Anaconda Pycharm 在新建项目 ...

  3. .Net修改网站项目调试时的虚拟目录(未验证)

    有些项目需要在IIS发布的时候,将网站发布到虚拟目录,为了保持调试和发布的路径同一,一般会修改VS调试的虚拟目录 一.Web应用程序 Web应用程序的修改方式非常简单,在解决方案资源管理器->项 ...

  4. metamask源码学习导论

    ()MetaMask Browser Extension https://github.com/MetaMask/metamask-extension 这就是整个metamask的源码所在之处,好好看 ...

  5. enq: FB - contention

    Troubleshooting 'enq: FB - contention' Format Block Enqueues. (Doc ID 1379986.1) In this DocumentPur ...

  6. SpringBoot实战(十四)之整合KafKa

    本人今天上午参考了不少博文,发现不少博文不是特别好,不是因为依赖冲突问题就是因为版本问题. 于是我结合相关的博文和案例,自己改写了下并参考了下,于是就有了这篇文章.希望能够给大家帮助,少走一些弯路. ...

  7. 最小生成树(图论)--3366lg【模版】

    题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...

  8. 控制input输入框光标的位置

    一:理解input, textarea元素在标准浏览器下两个属性selectionStart, selectionEnd. selectionStart: 该属性的含义是 选区开始的位置: selec ...

  9. PAT A1130 Infix Expression (25 分)——中序遍历

    Given a syntax tree (binary), you are supposed to output the corresponding infix expression, with pa ...

  10. QT pro文件详细写法+实例

    很多的初学者都没有注意pro 文件的内容 今天简单的介绍一下 这个文件主要内容 TEMPLATE:这个变量是用来定义你的工程将被编译成什么模式.如果没有这个设置,系统将默认编译为application ...