Изображения регистрируются как 404 с Zend Framework - PullRequest
1 голос
/ 29 апреля 2010

Из-за того, что Zend переписывает URL для модуля / контроллера / действия, он сообщает, что изображения поступают как 404.

Вот ошибка:

  [_requestUri:protected] => /images/Movie/124/thumb/main.png
                [_baseUrl:protected] => 
                [_basePath:protected] => 
                [_pathInfo:protected] => /images/Movie/124/thumb/main.png
                [_params:protected] => Array
                    (
                        [controller] => images
                        [action] => Movie
                        [124] => thumb
                        [module] => default
                    )

                [_rawBody:protected] => 
                [_aliases:protected] => Array
                    (
                    )

                [_dispatched:protected] => 1
                [_module:protected] => default
                [_moduleKey:protected] => module
                [_controller:protected] => images
                [_controllerKey:protected] => controller
                [_action:protected] => Movie
                [_actionKey:protected] => action

Вот мой HTACCESS

SetEnv APPLICATION_ENV development

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Полагаю, что мне нужно сделать, это поместить какое-то изображение или / design discovery, чтобы оно не направлялось на index.php

Идеи

Ответы [ 7 ]

1 голос
/ 19 мая 2010

Логика установленного вами правила перезаписи .htaccess заключается в том, что если он не может найти файл, он отправит запрос на index.php Это означает, что если ваши изображения недоступны (не в публичном каталоге), zend_framework попытается справиться с этим. Что, конечно, не может.

1 голос
/ 05 августа 2010

Вы должны добавить строку

RewriteCond %{REQUEST_FILENAME} -f
1 голос
/ 19 мая 2010

Вы можете попробовать изменить свой htaccess с помощью

RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php

Ведьма должна позволять проходить изображениям и другим вещам.

1 голос
/ 29 апреля 2010

Если вы используете структуру каталогов по умолчанию, она должна работать, когда вы помещаете ваши изображения в папку ./public.

0 голосов
/ 19 мая 2010

Я использую тот же .htaccess и setup для проекта Zend, но не вижу такого поведения.

Только некоторые мысли, которые могут направить вас по правильному пути:

  • Чувствительность к регистру в пути?
  • Путь на самом деле не существует, что заставляет Apache перейти на index.php?
  • Конфигурация Apache (глобально) или на уровне VirtualHost
  • Проблема с разрешениями? Отрабатывает ли main.png по адресу ./public/main.png при отправке запроса?
  • Перекрывающийся шаблон маршрута в application.ini?
  • Немного отключить .htacces, просто чтобы посмотреть, правильно ли он отображает каталоги?

Просто некоторые идеи. -Эндрю

0 голосов
/ 30 апреля 2010

Вы можете попробовать этот фрагмент

 <img src="<?=$this->baseUrl('/img/icon_quickstart.png');?>" alt="start" />
0 голосов
/ 29 апреля 2010

Поместите папку с изображениями в общедоступном месте, и, как Арни упоминает, вы готовы. То же самое касается любых дополнительных файлов, которые вы, возможно, захотите включить в любое из ваших представлений, например CSS-файлы.

/public
   |__ images/
   |__ css/

Приветствия. M.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...