>백엔드 개발 >PHP 튜토리얼 >ZF的当前路径有关问题?求帮忙。多谢

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

WBOY
WBOY원래의
2016-06-13 10:16:59863검색

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.