如何在CodeIgniter中使用相对路径?

时间:2014-06-19 12:33:15

标签: php codeigniter relative-path

我对相对路径有一点了解。假设,我有一个关于codeigniter的项目。有4个控制器,如功能名称:

1. Admin->index,profile,add_student,edit_marks,make_admin,
2. Teacher->index,add_marks,update_marks 
3. Student->index,view_teacher,view_result
4. Guest->index,view_Student, view_marks,view_result

从这些中,我如何将它们用作相对路径?提醒它,有时我将一个控制器转到另一个控制器,例如profile,view_marks是所有人的常用功能,所以每个人都可以访问它。

对于图像或文件,我可以使用相对路径吗?然后,假设我在根文件夹中有一个图像 - > ROOT_FOLDER /模板/图像/ a.png。我怎样才能将它用作相对路径?

真的,我需要在codeigniter中应用相对路径的核心知识。

5 个答案:

答案 0 :(得分:2)

您应该使用root / index.php

中定义的codeigniter常量

使用根路径

  

FCPATH

返回

安装codeigniter的根文件夹的路径。

所以在你的情况下,它将是

  

FCPATH。 '模板/图像/ a.png';

我假设您正在寻找路径而不是网址。

答案 1 :(得分:1)

最后我找到了答案:

没有必要每次都使用base_url或site_url作为链接。

所有时间使用:

 /controller_name/function_name

例如,对于查看管理员的个人资料代码的锚链接(我希望,此技术称为相对路径)。它减少了路由它的时间。

    <a href="/admin/profile">Admin Profile</a>

答案 2 :(得分:0)

将此用于图像路径有什么问题?

base_url('path/to/image')

答案 3 :(得分:0)

如果有像senario的话 ROOT |____APPLICATION |____ASSETS | |________ CSS | |________ JS | |________ IMG |____SYSTEM

然后你可以按如下方式访问css: -

 <script type="text/javascript" src="<?php echo base_url();?>assets/css/style.css"></script>

<script type="text/javascript" src="<?php echo base_url();?>assets/js/getinfo.css"></script>

<script type="text/javascript" src="<?php echo base_url();?>assets/img/image.png"></script>

答案 4 :(得分:0)

目前接受的答案很好,但不是相对的。例如:如果网站将从根目录替换到子目录,则网址将不再起作用。

有关我在此处找到的同一主题的更多信息:How can I display images with the Codeigniter php framework?

该主题的答案建议不要使用相对路径,但我个人希望在模块中看到这一点(CodeIgniter的MX插件)。

所以这是我找到的相对路径的可能方式:

 <?php $path = base_url(str_replace(FCPATH,"", __DIR__ )).'/'; ?>

使用示例:

<img src="<?php echo $path;?>../assets/img/myImage.png" />

例如:如果这个html将在/modules/mymodule/views/someviewfile.php中使用,那么输出将是yourdomain.com/modules/mymodule/assets/img/myImage.png