2010-08-04 104 views
-1

我已經在本地機器上安裝了zend框架。我在httpd.conf中配置了一個虛擬主機,並在我的主機文件(127.0.0.1 mysite)中添加了一行。我正在運行Windows 7.一切正常。問題是當我上傳託管服務器的路徑混淆起來。 我正在上傳一個名爲zf-framework的遠程目錄。要訪問索引頁,我需要輸入這個網址:http://mysite/zf-framework/public。它顯示索引頁面,但當我按頁面上的任何鏈接時,它們會混在一起,最終會變成http://mysite/controller/action,實際上它應該是http://mysite/zf-framework/public/controller/action。我已經找到了解決這種情況的方法......使用echo $ this-> baseUrl(link)獲取layout.phtml中的任何鏈接。提交表單時問題更爲嚴重。我不能在那裏使用baseUrl ....或者我不知道如何使用它。有沒有辦法編寫一些通用配置的東西,以便這可以由框架自動解決。比方說在index.php或bootstrap.php中寫一些會自動修復路徑的東西?zend與路徑的框架問題

回答

0

我不是100%,但如果你在routes.ini中指定路由爲zf-framework/public/Controller/Action等,這應該可以解決你的問題。

我會看到這是一個bandaid,但我不是100%確定如何正確解決您的問題,除非您修改遠程服務器上的vhosts文件以將文檔根設置爲公用文件夾。如果這不是一個選項,那麼上面應該可以工作,但是要知道所有的文件都可以從每個人(至少是你的文件夾結構)訪問。如果數據庫模式位於/ data目錄中,我不確定這可以造成什麼樣的危害(如果有的話)。

如果可能的話,最好嘗試讓公共設置爲web根目錄。

1

如果您使用的是Zend_Application,那麼將以下內容添加到您的configs/application.ini文件中。

resources.frontController.baseUrl =「/你的路徑,在這裏」

如果你不使用Zend_Application,那麼這樣做在你的引導,或index.php文件。

$front = Zend_Controller_Front::getInstance(); 
$front->setBaseUrl('/your-path-here'); 

您將不必使用$這 - >的baseUrl()提交表單,以同樣的動作和控制器時(剛離開了形式標記的action屬性),或者當使用重定向動作幫手。然而,你的視圖腳本中的鏈接將需要你$ this-> baseUrl('/ url-without-base'),這對我來說不算太糟糕。

+0

你幫我解決了另一個問題!呵呵謝謝! – 2017-05-21 03:01:37