2011-08-24 66 views
0

我想用Zend框架創建應用程序,所以 我已經用zf工具創建了基本的應用程序結構。Zend索引控制器問題

現在,當我嘗試使用http開頭的應用程序:「歡迎到Zend框架」 //localhost/zendApp/public/index.php 默認頁面加載。

但是當我鍵入的http://本地主機/ zendApp /公/的http://本地主機/ zendApp /公共/指數指數控制器,則不會調用,但 而我得到的錯誤信息:

指定

*無效控制器(zendApp)

array (
    'controller' => 'zendApp', 
    'action' => 'public', 
    'module' => 'default', 
) 
  • 正如你看到的,它試圖開始與應用程序的名稱控制器。 另外,如果我在創建索引控制器附加動作和與HTTP調用它://本地主機/ zendApp /公共/索引/ newaction 我得到同樣的錯誤:

    陣列( 「控制器」 =>「zendApp 」, '行動'=> '公', '指數'=> 'newaction', '模塊'=> '默認', )

你能幫助我理解爲什麼指數控制器沒有被調用? 謝謝。

回答

0

您的控制器的URL將不包含公用文件夾。例如,UserController將是 http://localhost/zendApp/user/而不是http://localhost/zendApp/public/user,並且您的索引控制器應該在http://localhost/zendApp/http://localhost/zendApp/index上工作。

您的網址rewiter(如mod_rewrite的)應設置重寫所有的網址/public/index.php除靜態文件,例如圖片,CSS JS等等看here

你有這種設置: 「如果您正在部署到」用戶「站點(例如http://localhost/~rob),那麼您的.htaccess文件中需要一個RewriteBase行,類似於:RewriteBase /〜rob/zf-tutorial/public /」here

+0

謝謝爲了你的回答,我明白你的意思。但我認爲zend的默認設置是準確地通過公共文件夾訪問控制器 - 開發人員猜測,在Web服務器上部署時,只會將index.php放在公用文件夾中,而其他應用程序只放在公用文件夾之外。但是,當我在本地開發時,這並不令人信服,所以我會用你說的。 – MBozic

+0

我在第一時間爲我找到了解決方案問題,當時我正在閱讀文章http://www.bogartcomputing.com/web-programming-answers/213/a-heavily-corrected-windows-xp-xampp-zend- framework-quickstart-tutorial-revision /。看來我錯過了這個:「行C:\ xampp \ php \ php.ini,取消註釋 擴展名= php_pdo.dll 擴展名= php_pdo_sqlite.dll」 – MBozic

+0

很確定Zend的默認結構是讓你的控制器在應用程序文件夾,公共場所,公共場所僅用於資產和設置環境並調用引導程序的index.php。 http://framework.zend.com/manual/1.11/en/project-structure.project.html – wgcrouch