Zend_Controller пытается выполнить мои таблицы стилей как контроллер

Я инициализирую заполнители для моего глобального макета в 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, и теперь все работает как положено...

RewriteRule !.(js|ico|txt|gif|jpg|png|css|htc|swf|htm)$ index.php


person Partyschaum    schedule 14.06.2011    source источник


Ответы (1)


Типичный макет проекта 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 где-то в общей папке (а не в папке приложения)? Если да, можете ли вы просмотреть права доступа к файлам?

Кроме того, я рекомендую проверить права доступа к файлам. Если файлы CSS не читаются процессом Apache, то Apache не сможет их обслуживать.

person Chris Nauroth    schedule 14.06.2011
comment
Мой макет каталога соответствует книге из-за использования Zend_Tool. Это были неправильные права доступа к файлам. :-/ спасибо - person Partyschaum; 14.06.2011