使用Zend Framework附加样式表仅在未指定操作时才有效

时间:2012-08-05 11:15:31

标签: php css zend-framework action append

我开始使用Zend Framework并尝试在layout.phtml中添加一些样式表和javascript文件:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LoremIpsum</title>
<?php echo $this->headLink()->appendStylesheet('css/global.css'); ?>
</head>

这个问题是,只有在url中没有指定动作时它才有效。 例如,它适用于此: www.domain.com,www.domain.com / index,www.domain.com / login

但如果我添加动作,即使它是 www.domain.com/index/index 它停止工作。

我注意到在这种情况下,index.php被调用两次并调用ErrorController。 但输出显示没有错误。这是没有样式表信息的预期输出。

我的布局出了什么问题?

修改1:

错误报告已激活,在其他情况下有效。 HTML标记是正确的。 Firebug显示我的css文件未找到,但路径不能错,因为没有指定的操作它可以正常工作。

2 个答案:

答案 0 :(得分:7)

您可以使用BaseUrl()查看助手:

<?php echo $this->headLink()->appendStylesheet($this->baseUrl().'/css/global.css'); ?>

然后应该没事......

答案 1 :(得分:1)

如果你想看到错误,你必须将你的工作环境从生产改为开发(这是通过将SetEnv APPLICATION_ENV development添加到你的.htaccess文件来完成的)

关于布局两次的布局,将其添加到errorController文件中的errorAction(使其成为操作的第一行):$this->getResponse()->clearBody();

修改:

好的,请尝试添加样式表:

$this->headLink()->appendStylesheet('css/global.css');
echo $this->headLink();