2012-09-23 278 views
0

我想学习Codeigniter。我已经在CI站点上的教程之后构建了一个简单的MVC。这是我的控制器......Codeigniter链接到样式表

<?php 

class Pages extends CI_Controller { 

    public function view($page = 'home'){ 

     if(!file_exists(APPPATH.'/views/pages/'.$page.'.php')){ 
      show_404(); 
     } 

     $data['title'] = ucfirst($page); 

     $this->load->view('templates/header', $data); 
     $this->load->view('pages/'.$page, $data); 
     $this->load->view('templates/footer', $data); 
    } 
} 

这里是头部模板...

<html> 
<head> 
    <title><?php echo $title ?> - WurkWithUs</title> 
    <link rel="stylesheet" href="http://localhost/ci/CodeIgniter_2.1.2/css/bootstrap.css" type="text/css" media="screen"/> 
    <link rel="stylesheet" href="http://localhost/ci/CodeIgniter_2.1.2/css/custom.css" type="text/css" media="screen"/> 
</head> 
<body> 
    <h1>Wurk With Us</h1> 

的样式表,当我使用绝对路径类似上面的工作。但是,如果我尝试使用类似...

<link rel="stylesheet" href="<?= base_url()?>css/bootstrap.css" type="text/css" media="screen"/> 

我得到一个空白页。当我“查看页面源代码”我的风格,线条看起来像......

<link rel="stylesheet" href=" 

我曾试图按照建议here和我即文件停止在的“href =”行被解析相同的结果。

我在做什么错?有没有更好的方式来加载我的样式表?

回答

6

我有这个问题很多次。我敢打赌,你没有加载URL helper。它不会自动加载,因此请将其加载到控制器中或自动加载它。

如果选择将导致它在你的控制器,通话

$this->load->helper('url'); 

您加载视图之前。

看到href空白源的原因是因为没有在这一点上一个PHP错误(它找不到方法base_url()

+0

是的,只是想出来感谢你的帮助。我只是写我自己的答案。阿罗哈 – noel

1

试试这个:

<?php base_url("css/bootstrap.css"); ?> 

感谢

+0

这是一个没有去。无论如何,这些双重qoutes在href内部不起作用。我用不同的方式转义了这个建议,得到了同样的结果。 – noel

+2

@shakabra - 这不是解决您的问题的方法,但它是使用'base_url'函数的正确方法。引号在那里,因为你正在向函数传递一个字符串。 – VictorKilo

1

在你的控制器试试这个

$this->load->helper('html'); 

和这在头部标记

<?=link_tag('css/style.css')?> 
0

我想你需要加载“url”助手。 装入帮手autoload.php

Like that way :: $autoload['helper'] = array('url'); 

这将自动加载你的助手每次。因此,您无需在每个控制器中一次又一次加载它。

如果您希望加载这个帮手特定的控制器,然后加载助手在你的控制器通话

Like that way :: $this->load->helper('url');