Zend Framework 2:basePath()什么都不打印

时间:2014-05-21 06:02:25

标签: php zend-framework zend-framework2

我想知道为什么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">

我如何解决这个问题。帮助将高度赞赏。提前谢谢。

3 个答案:

答案 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";
}

如果它仍然不起作用,请将其作为变量传递给您的视图,以便您可以在视图中使用它。