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
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 не сможет их обслуживать.