CodeIgniter中使用base_url()时显示http://::1/ci/
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/的更多相关文章
- asp.net中当服务器出错时显示指定的错误页面
http://blog.csdn.net/helloxiaoyu/article/details/2943537 此篇文章描述了当异常再ASP.NET中发生时怎样使用C#.NET代码去拦截和相应异常. ...
- ueditor与mvc4中坑 -编辑时显示源码问题
最近一次使用 ueditor 时,在MVC中的修改新闻内容时发现,怎么调用都是编辑器保存下来的源码,代码如下 <script id="ucontent" name=" ...
- mysql中插入中文时显示乱码
在插入mysql的时候参数是中文的时候显示的是???乱码,这个是由于没有配置字符编码引起的 只要在SqlMapconfig.xml文件中加上<property name="url&qu ...
- 向mysql数据库中插入数据时显示“Duplicate entry '1′ for key ‘PRIMARY' ”错误
错误情况如题,出现这个错误的原因十分简单: 很明显,这是主键的问题. 在一张数据表中是不能同时出现多个相同主键的数据的 这就是错误的原因,解决的方法: 1.可以将这张表设置成无主键(mysql支持,其 ...
- jquery mobile 请求数据方法执行时显示加载中提示框
在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更 ...
- Flex中如何通过showAllDataTips属性使鼠标移动到图表时显示所有的数据Tips的例子
原文 http://blog.minidx.com/2008/11/10/1616.html 接下来的例子演示了Flex中如何通过showAllDataTips属性,使鼠标移动到图表时显示所有的数据T ...
- Linux故障:linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0"。
linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0". ...
- ie6 表格td中无内容时不显示边框的解决办法
1.在单元格中加入一个空格.这样: <td> </td> 2.直接在table里这样写:<table border="0" cellspacing=& ...
- JS文件中的中文在网页引用时显示乱码的简单解决方式
今天把一个jquery方法从前台cshtml文件转移到单独的js文件中后执行不成功,调试发现if判断中的中文字符串变成了乱码,之前在前台文件中是可以正常显示的,所以判定可能是跟文件的编码方式有关系. ...
随机推荐
- android:layout_margin真实含义 及 自己定义复合控件 layout()运行无效的问题解决
一.关于layout_margin 搞Android时间也不短了.对layout_margin也不陌生了,可近期遇到一个问题让我发现,对它的认识还不够深入全面.大量网络资料上都说,layout_mar ...
- JEECG 开源平台全视频和文档
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26488439 jeecg v3.0入门 ...
- Java中关于AbstractQueuedSynchronizer的入门(二)
AQS是一个同步器的基础类,里面的关键字段: //如下关键字段都是volatile类型 /** * Head of the wait queue, lazily initialized. Except ...
- MYSQL中的int(11)到底代表什么意思?
对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长 ...
- cryptopunks测试代码cryptopunksmarket-setinitial.js
require('babel-polyfill'); //测试用例要在执行完了truffle compile和truffle migrate后才能使用truffle test来进行测试 //要注意ar ...
- Database hang and Row Cache Lock concurrency troubleshooting
http://www.dadbm.com/database-hang-row-cache-lock-concurrency-troubleshooting/ Issue backgroundThis ...
- Linux系统学习之文件管理
Linux目录分布通常是树形,所以它的结构又称为目录树. 一.文件和目录管理 [root@Cfhost-170820-UCNK /]# cd / [root@Cfhost-170820-UCNK /] ...
- zabbix学习小结
一.zabbix是干什么的? zabbix主要用来做监控.监控什么呢?比如日常巡检的CPU.内存.磁盘.swap交换分区和各端口进程等. 以往日常巡检,通过df -h命令获得磁盘的使用量和 ...
- JavaScript中的slice函数
String.slice(start,end)returns a string containing a slice, or substring, of string. It does not mod ...
- fastcgi_next_upstream error timeout invalid_header http_500 http_503(转)
location / proxy_pass http://nodelist; fastcgi_next_upstream error timeout invalid_header http_500 h ...