2014-01-08 54 views
4

我開始嘗試http://ellislab.com/codeigniter%20/user-guide/tutorial/static_pages.html上的第一個教程示例。關於靜態頁面的CodeIgniter教程

我總是得到Page Not Found問題! 我已經閱讀了很多關於解決問題的文章。但是,在不同論壇嘗試解決方案的頻率並不重要,它不工作!

有人能讓我知道我的錯誤在哪裏嗎?

因此,這些都是一些文件,我想:

我的應用程序/配置routes.php文件

$route['default_controller'] = "pages/view"; 
$route['404_override'] = ''; 
$route['(:any)'] = 'pages/view/$1'; 

我在申請pages.php /控制器

<?php 
    class Pages extends CI_Controller{ 
    public function view($page = "home") 
    { 
     if (! file_exists('application/views/pages/'.$page.'.php')) 
     { 
     // Whoops, we don't have a page for that! 
     show_404(); 
     } 

     $data['title'] = ucfirst($page); // Capitalize the first letter 

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

我的home.php和about.php位於application/views/pages/ 和header.php文件和footer.php都在應用程序/視圖/模板/

非常感謝您!

+0

你可以插入'var_dump($ page);返回;'if'(!file _.....'之前''這樣我們檢查這個方法是否啓動 – Paul

+0

你可以寫什麼URL你打開嗎? – Paul

+0

如果你只是拿出'if(!file_exists )'讓CI去處理這個缺失的視圖,看看它是如何實現的,看看會發生什麼? –

回答

0

使文件存在或不存在條件出來,它會工作,因爲你正在檢查的不是文件,而只是一個URL路由到。所以明顯地它會一直返回錯誤,這會導致你的工作失敗。

0

的application/config/routes.php文件

試着將

$route['default_controller'] = 'pages/view'; 
$route['(:any)'] = 'pages/view/$1'; 

$route['default_controller'] = 'pages/views'; 
$route['404_override'] = ''; 

希望工程。儘管爲我工作。

0

嘗試在/application/config/routes.php改變代碼:

$route['default_controller'] = "pages/view"; 
$route['(:any)'] = 'pages/view/$1'; 
$route['404_override'] = ''; 

笨逐行讀取代碼行,所以其選擇你所創建的頁面之前,顯示404頁。

0

請務必密切關注指示。我遇到了同樣的問題並尋找解決方案。只有在閱讀了其中一些答案之後,我才意識到我沒有在views目錄內創建templatespages子目錄。通過你的static pages教程結束的時候,你應該有一個結構如下:

/views/ 
    /templates/ 
    header.php 
    footer.php 
    /pages/ 
    about.php 
    home.php 
0

首先運行該

$route['default_controller'] = 'welcome'; 
$route['404_override'] = ''; 

那就試試這個

$route['default_controller'] = "pages/view"; 
$route['404_override'] = ''; 

我同樣的問題,但沒有解決。