【问题标题】:How can I use relative path in CodeIgniter?如何在 CodeIgniter 中使用相对路径?
【发布时间】:2014-06-19 12:33:15
【问题描述】:

我对相对路径略知一二。假设,我有一个关于 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是所有人的通用功能,因此每个人都可以访问它。

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

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

【问题讨论】:

  • 你的意思是URI Routing
  • @Bora,不,我的意思是相对路径。

标签: php codeigniter relative-path


【解决方案1】:

您应该使用在 root/index.php 中定义的 codeigniter 常量

获取根路径使用

FCPATH

返回

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

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

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

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

【讨论】:

  • @Zeshak Khattak,好的,我认为它是为了形象。但是,调用控制器函数的几个 url 是什么?
【解决方案2】:

我终于找到了答案:

链接不需要每次都使用base_url或site_url。

一直使用:

 /controller_name/function_name

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

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

【讨论】:

  • 使用提供的功能是更好的最佳实践。如果您的网站/应用程序被移动到子目录,所有这些链接都将被破坏。
【解决方案3】:

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

base_url('path/to/image')

【讨论】:

    【解决方案4】:

    如果有类似的情况 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>
    

    【讨论】:

      【解决方案5】:

      当前接受的答案工作正常,但不是相对的。例如:如果将网站从根目录替换为子目录,则 url 将不再起作用。

      更多关于我在这里找到的同一主题: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" />
      

      例如:如果在 /modules/mymodule/views/someviewfile.php 中使用此 html,则输出将为 yourdomain.com/modules/mymodule/assets/img/myImage.png

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        • 1970-01-01
        • 2017-02-11
        • 2015-12-10
        • 2011-02-16
        • 1970-01-01
        相关资源
        最近更新 更多