Zend_Controller尝试将我的样式表作为控制器执行

时间:2011-06-14 15:30:33

标签: zend-framework controller stylesheet zend-controller

我按照here所述,在 Bootstrap.php 中初始化我的全局布局占位符。

public function _initPlaceholders()
{
    $this->bootstrap('View');
    $view = $this->getResource('View');

    $view->doctype('XHTML11');

    $view->headTitle('Foo Bar Title')
         ->setSeparator(' :: ');

    $view->headMeta()->appendHttpEquiv(
        'content-type',
        'application/xhtml+xml; charset=UTF-8'
    );

    $view->headMeta()->appendName('robots', 'index,follow');

    $view->headLink()->appendStylesheet('/styles/styles.css', 'screen')
                     ->appendStylesheet('/styles/print.css', 'print');
}

呈现的HTML看起来是正确的。

<title>Foo Bar Title</title>
<link href="/styles/styles.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/styles/print.css" media="print" rel="stylesheet" type="text/css" />
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="robots" content="index,follow" />

但CSS没有正确加载,因为Zend_Controller认为它是一个控制器或什么的。当我尝试打开CSS文件时,会发生以下错误:

  

致命错误:未捕获的异常   'Zend_Controller_Dispatcher_Exception'   消息'无效的控制器   指定(错误)'

任何提示?

[更新]

好的,只需将以下行添加到我的.htaccess文件中,所有内容都按预期正常工作......

  

重写规则   !。(JS | ICO | TXT | GIF | JPG | PNG | CSS | HTC |瑞士法郎| HTM)$   的index.php

1 个答案:

答案 0 :(得分:0)

典型的Zend项目布局如下所示:

.
|-- application
|   |-- Bootstrap.php
|   |-- configs
|   |-- controllers
|   |-- forms
|   |-- layouts
|   |-- models
|   `-- views
|-- library
`-- public
    |-- images
    |   `-- favicon.ico
    |-- index.php
    |-- js
    |   `-- scripts.js
    `-- styles
        `-- style.css

你的相似吗?具体来说,你是否在公共文件夹(而不是应用程序文件夹)下的某处有CSS和JavaScript文件?如果是,您可以查看文件权限吗?

另外,我建议您查看文件权限。如果Apache进程无法读取CSS文件,那么Apache将无法为它们提供服务。