找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1747|回复: 0

[分享] codeigniter 扩展url辅助方法 方便引入css样式文件

[复制链接]
发表于 2013-4-16 16:32:38 | 显示全部楼层 |阅读模式 来自 中国–北京–北京
自从转到Ruby后,有一段时间没有碰PHP了。
今天用Codeigniter随便写点东西。以前看的也都快忘的差不多了
当我要在View层引入style,images,javascript的时候深感不便。翻出手册看了看。
发现了 URL 辅助函数 base_url()

在config.php中把base_url() 配置为网站的根url
然后在项目的根目录新建了public文件夹,然后下面分css,images,javascript三个文件夹
在view层 使用base_url()的话必须得这样
引入css
1
<link rel='stylesheet' type='text/css' href='<?php echo base_url("/public/css/style.css"); ?>' media='all'>



引入javascript
1
<script type='text/javascript' src='<?php echo base_url("/public/javascript/jquery.js"); ?>'></script>




如果显示图片
1
<img src='<?php echo base_url("/public/images/hello.png");?>'/>




每次都要/public/css /public/images /public/javascript
如果下面路径更深的话,很是不方便啊!

顿时感觉弱爆了。有木有......

thinking......

既然config.php下可以配置base_url() 那我可不可以配置个别的呢,行不行先试试再说
迅雷不及掩耳盗铃之势 在base_url的下面配置了三项 格式一模一样 肯定不会错
1
// these is only a try

[backcolor=rgb(248, 248, 248) !important]
2
$config['style_url'] = 'http://localhost/new/public/css/';

3
$config['images_url'] = 'http://localhost/new/public/images/';

[backcolor=rgb(248, 248, 248) !important]
4
$config['javascript_url'] = 'http://localhost/new/public/javascript/';



注:http://localhost/new/ 为我的项目url

刷新页面,不好使,报错了,相应的函数不存在,codeigniter在url辅助函数 里实现了base_url方法,
而我们自己配的 style_url images_url javascript_url 并没有自动实现相应的方法

怎么办?

既然这样不行,那就只能扩展url辅助方法了,在system/helpers/下 我发现了  

url_helper.php 文件 打开 搜索 base_url

果然在里面实现了base_url()  
1
if ( ! function_exists('base_url'))

[backcolor=rgb(248, 248, 248) !important]
2
{

3
    function base_url($uri = '')

[backcolor=rgb(248, 248, 248) !important]
4
    {

5
        $CI =& get_instance();

[backcolor=rgb(248, 248, 248) !important]
6
        return $CI->config->base_url($uri);

7
    }

[backcolor=rgb(248, 248, 248) !important]
8
}




很简单的几行代码,复制代码 粘贴在base_url 函数后面,稍加修改来 实现我自己的url辅助函数
1
if ( ! function_exists('css_url'))

[backcolor=rgb(248, 248, 248) !important]
2
{

3
    function css_url($uri = '')

[backcolor=rgb(248, 248, 248) !important]
4
    {

5
        $CI =& get_instance();

[backcolor=rgb(248, 248, 248) !important]
6
        return $CI->config->base_url("/public/css".$uri);

7
    }

[backcolor=rgb(248, 248, 248) !important]
8
}




修改下view页面 使用css_url()来加载css文件
1
<link rel='stylesheet' type='text/css' href='<?php echo css_url("/style.css"); ?>' media='all'>



刷新,效果出来没,  没出来 那是你肯定那个地方出了问题 再仔细检查下


发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-19 01:27 , Processed in 0.036433 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表