2010-09-01 56 views
1

我是一個cakephp新手,我無法通過瀏覽器查看視圖文件夾下的文件。如何配置CakePHP,使其在瀏覽器中正確顯示?

我用cakephp控制檯來烘烤模型,控制器和視圖。 (例如:控制器的Invoices_controller.php,模型的invoice.php和視圖文件夾下的發票文件夾)。根據我讀過的教程,我可以通過輸入http://localhost/myProject/invoices (在發票文件夾中沒有index.php ..但教程顯示它仍然可以顯示頁面,但不知道他們是如何做到的)訪問發票視圖

我的發票的路徑是myProject/views/invoices,並且在invoices文件夾內有add.ctp,index.ctp,edit.ctp文件。

瀏覽器顯示的文件中找不到的時候我輸入http://localhost/myProject/invoices

+0

請澄清「發票文件夾內沒有index.php」這句話。這是否意味着在'/ app/webroot /'中有一個名爲「invoices」的文件夾?你會得到什麼樣的錯誤?它是由Cake(「missing Controller invoices ...」)還是由您的web服務器(非常普通的白頁)生成的? – deceze 2010-09-01 03:07:57

+1

你有沒有安裝mod_rewrite? – NullUserException 2010-09-01 05:29:43

+0

我沒有安裝mod_rewrite ...是這個問題? – FlyingCat 2010-09-01 13:32:03

回答

2

你有一些關於如何CakePHP安裝時處理請求的Web服務器缺乏自己的知識。假設我們使用apache。 在cake的文件夾結構中,你可以在root,app和webroot目錄中看到.htaccess文件,其中有url重寫規則。在結束一個CakePHP的網站正常的請求將被轉換爲http://site.url.root/app/webroot/index.php?url=original.url

在總而言之,瞭解它在你的觀點: 這index.php文件調用所需的PHP文件和至少一個CakePHP的應用對象是建立在內存中使用所需的模型和方法。然後,應用程序對象讓我們說開始並調用它的方法(模型,控制器和視圖方法),最後它將結果返回給Apache,它爲您提供了什麼。

因此原始的url路徑是一個「不存在的」虛擬url。

1

如果你輸入http://localhost/myProject/你會得到一個蛋糕介紹頁嗎?如果是這樣,它突出顯示任何問題?

聽起來好像你沒有正確設置Apache。我不知道你在使用什麼操作系統,但是可能值得檢查一下爲Ubuntu編寫的這個鏈接,以確保一切正常:http://leoponton.blogspot.com/2010/05/getting-cakephp-up-and-running-on.html

+0

當我輸入http:// localhost/myProject /時,我可以看到頁面。該頁面看起來不錯(連接到數據庫..等)。我使用Ubuntu作爲我的操作系統... +1 – FlyingCat 2010-09-01 13:36:33

+0

頁面樣式是否正確? (例如:如果我沒有弄錯,你可以訪問樣式表的URL - http://localhost/myProject/css/cake.generic.css,你可以檢查生成的源代碼是否爲實際的URL) – NullUserException 2010-09-01 14:03:15

0

傑裏,我認爲問題是這樣的。你已經把CakePHP文件夾放在localhost的根目錄下。我建議你創建一個指向該myProject的虛擬主機,因此網址變爲:

http://myProject/accounting

這可能會解決你的問題。確保重寫模塊已打開。另外,當你將虛擬主機指向myProject時,它應該是cakephp的APP文件夾。如果你想運行多個項目關閉了相同的核心,你可以設置它們像這樣:

/var/www/cake 
/var/www/html/myProject 
/var/www/html/myProject2 

在/ var/WWW /餅目錄是你把蛋糕核心。在這個目錄下,你將有蛋糕,應用程序,插件,供應商等myProject(2)目錄將是應用程序目錄的內容。

現在,要獲得此功能,您需要轉到/var/www/html/myProject/webroot/index.php並將其編輯爲指向/ var/www/cake中的cake目錄。這將在webroot中重寫指向index.php時加載核心。你應該很好走!

1

我修正了同樣的問題。 如果你使用的是Windows 7操作系統,wamp server,cakephp 2.2.3。然後

轉到阿帕奇 - >的http.conf - >打開 - >搜索mod_rewrite的 - >取消註釋行LoadModule rewrite_module modules/mod_rewrite.so

現在重新啓動服務器,現在它應該工作的罰款。

相關問題