Mad*_*bæk 11 php zend-framework zend-view zend-layout
案例:您正在使用Zend Framework开发一个站点,并且需要相关链接到部署webapp的文件夹.即mysite.com/folder在线和localhost:8080正在开发中.
无论部署位置如何,以下在控制器中都很好用:
$this->_helper->redirector->gotoSimple($action, $controller, $module, $params);
Run Code Online (Sandbox Code Playgroud)
以下是一个意见稿,即.index.phtml:
<a href="<?php echo $this->url(array('controller'=>'index', 'action' => 'index'), null, true); ?>">
Run Code Online (Sandbox Code Playgroud)
但是,如何在链接到图像或样式表时获得正确的基本路径?(例如,在layout.phtml文件中):
<img src='<?php echo WHAT_TO_TYPE_HERE; ?>images/logo.png' />
Run Code Online (Sandbox Code Playgroud)
和
$this->headLink()->appendStylesheet( WHAT_TO_TYPE_HERE . 'css/default.css');
Run Code Online (Sandbox Code Playgroud)
WHAT_TO_TYPE_HERE 应该用给出的东西代替
<img src="/folder/images/logo.png />` on mysite.com and `<img src="/images/logo.png />
Run Code Online (Sandbox Code Playgroud)
在localhost上
Ake*_*eem 16
您可以从Front Controller获取基本URL Zend_Controller_Front::getInstance()->getBaseUrl();.我将它包装在一个视图帮助器中
class My_View_Helper_BaseUrl
{
/**
* Get base url
*
* @return string
*/
public function baseUrl()
{
return rtrim(Zend_Controller_Front::getInstance()->getBaseUrl(),'/');
}
}
Run Code Online (Sandbox Code Playgroud)
所以在html标记中你有类似<img src="<?php echo $this->baseUrl();?>/images/logo.png"/>的东西.在帮助程序中删除了尾部斜杠,这样当应用程序没有在子文件夹中运行时(在这种情况下baseUrl是空白的),路径仍然可以工作.
pup*_*its 14
如果有人想知道最好的方式,并且不想浪费2个小时搜索Zend/Google.有一个视图助手来做到这一点.
$this->view->serverUrl();
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您想在layout文件中托管名称,请打印此HOST名称并获取您的姓名:
echo $this->serverUrl().$this->baseUrl()
Run Code Online (Sandbox Code Playgroud)