放置在子文件夹中的控制器没有内容

时间:2014-03-06 00:39:47

标签: php codeigniter directory-structure

我第一次使用PHP框架来摆脱编写意大利面条代码,到目前为止它非常棒。我正在使用Code Igniter,并且有一个名为“Dashboard.php”的基本控制器,它可以很好地加载并且看起来很完美。

在尝试创建某个组织时,我将“Devices.php”放入“控制器/设备”子文件夹,然后在“http://domain.com/devices/devices”处访问它,加载文本,但是images / css /等等。不见了。

“设备”控制器的内容与我的“仪表板”完全相同,所以我不明白为什么只加载文本。如果我将“devices.php”文件移动到根Controllers目录中,则没有问题。

class Devices extends CI_Controller
{

    public function index()
    {
        $data['page_title'] = 'Device Portal';

        $this->load->view('meta');
        $this->load->view('sidebar');
        $this->load->view('userbar');
        $this->load->view('header');
        $this->load->view('devices/content');
        $this->load->view('footer');
    }

}

这是“Sidebar.php”视图......

<!-- Left side content -->
<div id="leftSide">
    <div class="logo"><a href="index.html"><img src="assets/images/logo.png" alt="" /></a></div>

    <div class="sidebarSep mt0"></div>

    <!-- Search widget -->
    <form action="" class="sidebarSearch">
        <input type="text" name="search" placeholder="search..." id="ac" />
        <input type="submit" value="" />
    </form>

    <div class="sidebarSep"></div>

    <!-- General balance widget -->
    <div class="genBalance">
        <a href="#" title="" class="amount">
            <span>General balance:</span>
            <span class="balanceAmount">$10,900.36</span>
        </a>
        <a href="#" title="" class="amChanges">
            <strong class="sPositive">+0.6%</strong>
        </a>
    </div>

2 个答案:

答案 0 :(得分:0)

在视图中链接到images / css / etc时,您需要避免使用相对路径。

例如,当您使用页面assets/images/logo.png中的http://domain.com/devices/devices(相对路径)时,浏览器会查找http://domain.com/devices/assets/images/logo.png

使用与页面http://domain.com/devices相同的图片路径,浏览器会搜索http://domain.com/assets/images/logo.png

在指定域中的网页,图片等网址时,请使用URL helper功能自动设置网址格式。

你想避免写这样的网址:

<script type="text/javascript" src="./assets/js/jquery.js"></script>
<img src="assets/images/logo.png" alt="" />

而是生成这样的网址:

<script type="text/javascript" src="<?php echo base_url('assets/jquery.js'); ?>"></script>
<img src="<?php echo base_url('assets/images/logo.png'); ?>" alt="" />

将输出:

<script type="text/javascript" src="http://domain.com/assets/js/jquery.js"></script>
<img src="http://domain.com/assets/images/logo.png" alt="" />

答案 1 :(得分:0)

在Codeigniter中使用base_url()函数来打印资产。

<img src="<?php echo base_url('assets/images/logo.png');?>" alt="" /&GT;

此功能在网址前自动生成域。