Heim >Backend-Entwicklung >PHP-Tutorial > ZF的当前路径有关问题?求帮忙。多谢

ZF的当前路径有关问题?求帮忙。多谢

WBOY
WBOYOriginal
2016-06-13 13:36:47915Durchsuche

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn