Php 这个zend框架路径是如何工作的?

Php 这个zend框架路径是如何工作的?,php,windows,apache,zend-framework,path,Php,Windows,Apache,Zend Framework,Path,我正在windows vista上使用zend社区服务器。我正在学习Keith Pope的Zend Framework 1.8一书中的教程 $this->_view->headLink()->appendStylesheet('/css/main.css'); 找不到main.css文件(404)。实际文件路径是htdocs/myapp/public/css/main.css。当我去掉斜线,把它改成 $this->_view->headLink()->ap

我正在windows vista上使用zend社区服务器。我正在学习Keith Pope的Zend Framework 1.8一书中的教程

$this->_view->headLink()->appendStylesheet('/css/main.css'); 
找不到main.css文件(404)。实际文件路径是htdocs/myapp/public/css/main.css。当我去掉斜线,把它改成

$this->_view->headLink()->appendStylesheet('css/main.css'); 
它很好用。但是,在zend文档中查找appendStylesheet函数的示例时,它使用了该示例

$this->headLink()->appendStylesheet('/styles/basic.css')

所以在我看来,现在对我“有效”的东西是不正确的。你知道为什么会这样吗?

当你去掉斜杠时,“”标签也会影响样式表的加载位置。如果基本标记不存在,那么css将相对于您所在的位置加载(即:当您不在include中使用斜杠时,将从中加载css)

根据您的描述,我认为您的文档根指向myapp/而不是myapp/public/,并且您的配置为“/myapp/”,因此在不使用斜杠时,实际上是从“/myapp/css/main.css”加载css

此外,请检查文档根目录的路径。

添加echo$this->baseUrl();在输出echo$this->headLink()之前。 echo $this->baseUrl(); echo $this->headLink(); 所以在布局上,它会像

echo $this->baseUrl() . "/" . $this->headLink(); echo$this->baseUrl()。"/" . $此->标题链接(); 或


希望有帮助。

谢谢!是,文档根目录已设置为myapp而不是public