2012-09-23 377 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');