Изображения не загружаются из темы в CakePHP 2.x

Я использую CakePHP 2.3.1. Я создал свой каталог app/View/Themed/my_theme по мере необходимости. Я добавил к теме каталог webroot, в который я поместил все ресурсы моей темы. Однако изображения не загружаются, когда я использую $this->Html->image('{some_image}');.

Нужно ли размещать изображения в другом каталоге? Если я помещу их в основной каталог app/webroot/img, они, конечно, появятся на странице, как и ожидалось.

Обновление: Используя пример logo.png, у меня есть следующее:

Изображения размещены здесь: app/View/Themed/{my_theme}/webroot/img/logo.png

Изображения не отображаются на отображаемой странице. Источник изображения отображается как: <img src="http://example.com/img/logo.png">


person Chuck Burgess    schedule 07.03.2013    source источник
comment
каков сгенерированный URL этих изображений?   -  person mark    schedule 07.03.2013
comment
Они возвращаются как http://domain/img/some_image   -  person Chuck Burgess    schedule 07.03.2013
comment
Итак, URL-адреса правильные?   -  person mark    schedule 07.03.2013
comment
Они генерируются правильно, но расположение неправильное, так как img находится не в app/webroot/img, а в app/View/Themed/my_theme/webroot/img, поэтому изображение не появляется на странице.   -  person Chuck Burgess    schedule 07.03.2013
comment
Вы не можете использовать $this->Html->image('{some_image}');   -  person mark    schedule 07.03.2013
comment
Вы пробовали /my_theme/img/logo.png - возможно, вам также нужен AssetDispatcher   -  person mark    schedule 07.03.2013
comment
Я только что попробовал /my_theme/img/logo.png, и это не сработало. Я также подтвердил наличие AssetDispatcher.   -  person Chuck Burgess    schedule 07.03.2013


Ответы (1)


Я думаю, вам нужен AssetDispatcher в вашем бутстрапе:

Configure::write('Dispatcher.filters', array(
    'AssetDispatcher'
));

Это позволит использовать активы плагина или темы.

http://book.cakephp.org/2.0/en/development/dispatch-filters.html#configuring-filters

person mark    schedule 07.03.2013
comment
Я показываю, что диспетчер уже находится в начальной загрузке. Configure::write('Dispatcher.filters', array( 'AssetDispatcher', 'CacheDispatcher' )); - person Chuck Burgess; 07.03.2013