ZF的當前路徑有關問題?求幫忙。多謝
來源:互聯網
上載者:User
ZF的當前路徑問題?求幫忙。謝謝
小弟剛研究zendframework一段時間,遇到一個問題。希望各位大俠幫忙解決,先謝謝了
我做的一個後台,adminControll.php
訪問是 http://網址/admin
看了很多地方包括教程之類的都有說了在初始化的時候寫上這句,
$this->view->baseUrl = $this->_request->getBaseUrl();
但是我輸出看了,只是一個 .
而且根本不能起到什麼作用,我很多連結的地方都用 $this->baseUrl放在前面,但是開啟頁面老是出錯,就是得不到正確的連結地址,到現在我只能寫死,比如網址是http://www.123.com,現在要看一個articleAction 。那麼我在頁面上都會寫死,http://www.123.com/admin/article
如果我換做是$this->baseUrl."/admin/article",可能會出錯,比如我在單獨一個頁面上接上參數的時候就出錯了http://www.123.com/admin/article/act/edit/id/1。這樣寫的話,得到的路徑就很糟糕了。
可能我糊裡糊塗表達的不太清楚,不知道大家能理解不?
這個路徑問題害的我樣式啊,圖片啊都有可能會出錯了。除非把路徑寫死。
在http://www.123.com/admin/article 頁面用
顯示正確.
而在http://www.123.com/admin/article/act/edit/id/1 這個頁面上就出錯了。但是它們調用的是同一個檔案,地址路徑是一樣的,在網址上看來卻是多了好多個檔案夾。所以這樣就錯了。
我現在是寫死了。直接
而weburl;?>就是http://www.123.com
我想來想去覺得這種方法太死了。
還有什麼其他辦法嗎?
求解,謝謝高手幫忙。
------解決方案--------------------
嗯,其實zf了很多擷取url的功能。提供了很多方法可以靈活變通。
如果是在phtml中:
$this->baseUrl()表示的是
如果項目是demo1
表示的就是/demo1/public
既:
http://localhost/demo1/public
如果所以你的css在你可以用
echo $this->baseUrl().'/styles/global.css'
即:
http://localhost/demo1/public/styles/global.css
。baseUrl的含義就是從去掉網域名稱開始算的。以後像是資源的引用進來不要用相對路徑。用得話,要想清楚了
如果你擷取網站的網址用
$this->serverUrl()會返回http://localhost