我想知道为什么basePath()在layout.phtml中什么都不打印。我正在使用zend骨架应用程序。虚拟主机可以解决这个问题吗? 这是代码片段和输出。
echo $this->headLink(array('rel' => 'shortcut icon', 'type' => 'image/vnd.microsoft.icon', 'href' => $this->basePath() . '/img/favicon.ico'))
->prependStylesheet($this->basePath() . '/css/style.css')
->prependStylesheet($this->basePath() . '/css/bootstrap-theme.min.css')
->prependStylesheet($this->basePath() . '/css/bootstrap.min.css');
HTML输出
<link href="/css/bootstrap.min.css" media="screen" rel="stylesheet" type="text/css">
<link href="/css/bootstrap-theme.min.css" media="screen" rel="stylesheet" type="text/css">
<link href="/css/style.css" media="screen" rel="stylesheet" type="text/css">
<link href="/img/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
我如何解决这个问题。帮助将高度赞赏。提前谢谢。
答案 0 :(得分:1)
您应该尝试使用serverUrl()视图助手。
而不是basePath()示例:
$this->prependStylesheet($this->serverUrl('/css/style.css'))
->prependStylesheet($this->serverUrl('/css/bootstrap-theme.min.css'))
->prependStylesheet($this->serverUrl('/css/bootstrap.min.css'));
答案 1 :(得分:0)
尝试这样
$print = $this->headLink(array('rel' => 'shortcut icon', 'type' => 'image/vnd.microsoft.icon', 'href' => $this->basePath() . '/img/favicon.ico'))
->prependStylesheet($this->basePath() . '/css/style.css')
->prependStylesheet($this->basePath() . '/css/bootstrap-theme.min.css')
->prependStylesheet($this->basePath() . '/css/bootstrap.min.css');
> echo $print;
或作为临时解决方案。
<link href="<?php echo $this->basePath(); ?>/css/style.css" rel="stylesheet" type="text/css"/>
答案 2 :(得分:0)
尝试将此添加到您的控制器:
public function baseUrl() {
$protocol = isset($_SERVER['HTTPS']) ? 'https' : 'http';
$server = $_SERVER['HTTP_HOST'];
$port = $_SERVER['SERVER_PORT'] != 80 ? ":{$_SERVER['SERVER_PORT']}" : '';
$path = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\') . '/';
return "$protocol://$server$port$path";
}
如果它仍然不起作用,请将其作为变量传递给您的视图,以便您可以在视图中使用它。