CI视图路径的问题

视图中的所有路径全部和 index.php 同级,也就是和 index.php 属于一个目录下,也就是网站根目录,因为 index.php 后面看似是路径的东西其实那只是一种 URL 参数而已,并不是真正的路径。我建议在视图中使用 URL 辅助函数(URL Helper),CSS、图片等外部资源使用 base_url(),访问控制器方法使用 site_url()。

例如:

CI中图片的载入,$this->load->helper('url');<img src="<?php echo base_url(); ?>system/images/image0.jpg">

如果images文件夹和 index.php同级:

错误的理解:<img src="../images/image0.jpg">

 

在控制器中直接链接视图,请给出完整路径,例如:

        $this->load->helper('url');
        $src=base_url();
        echo "<a href='".$src."system/application/views/show.php'>click 1!</a>";//通过此链接进入show.php,点击其中的链接可跳转到show2.php,因为地址为base_url().'system/application/views/show2.php',正确
        $this->load->view('show');//这里引入的show.php,点击其中的链接将报错,因为地址为base_url().'show2.php',不存在

如果show.php中有一个链接:

<a href="show2.php">click 2!</a>

 

如果不遵照CI的MVC规范,在视图中处理get传参也会遇到CI路径问题,即使是在控制器中处理,也要避免在index方法(特别是默认控制器的index方法)中处理。

同样的,对于在视图中直接跳转到另一个视图的链接,要给出储存全路径,但这样就脱离了CI框架,跳入的视图中引用CI的类、函数等将报错。

注:视图从不直接调用,必须被一个控制器来调用。记住,在一个 MVC 框架中,控制器扮演着交通警察的角色,那么,他有责任去取回某一特定的视图。

 

如果站点不遵照www.example.com/[index.php/]controller/method/...样式,例如没有在服务器设置虚拟目录,直接使用localhost/projectdoc/c/m/...,在清除index.php、引入image,css等文件方面时都会带来不少的麻烦。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值