изображения в макете Zend Framework - PullRequest
4 голосов
/ 05 августа 2010

Я немного растерялся, решение могло бы скрываться под моим носом, но я не мог, подумал о вас, ребята, если кто-то может помочь.

Вот проблема: у меня есть стандарт Zend Frameworkмакет файла:

Project
  -application
     -controllers
     -views 
     -layouts
        -scripts
           -layouts.phtml
  -library
  -public
     -images
     -index.php

Теперь проблема в том, что я ссылаюсь на изображения в layouts.phtml только на images / logo.gif и т. д., и то же самое в представлениях контроллера /images/arrow.gif

Это прекрасно работает, если запрос прост http://servername/project/controller

, но если запрос более глубокий, например http://servername/project/controller/index/page/2

, изображения ломаются, они явно не могут найти путь,я замечаю, что, если я получу более поздний запрос, путь к изображению будет http://servername/project/controller/index/page/2/images/logo.gif, которого нет, изображение находится в общедоступном / images

Мое понимание было (и я гуглилэто тоже немного) Framework знает public по умолчанию и всегда будет направлять изображения в public / images.Однако это не работает.Должен ли я добавить какое-то правило переписывания или что-то?

Может кто-нибудь помочь, пожалуйста?Буду благодарен!

Ответы [ 2 ]

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

Иногда вы должны сначала спросить человека, сидящего рядом с вами!

Вот решение:

<?=$this->baseUrl('images/logo.gif')?>

Изменить после дальнейшего исследования

Для записи и для помощи другим: вы можете получить доступ к папке с изображениями публично, как обычно в среде без Zend Framework, если вы правильно настроили DocumentRoot.Я только создал виртуальный каталог в моем httpdconf, пока вы не создадите VirtualHost и не дадите ему DocumentRoot, пока ваши файлы не находятся в каталоге htdocs по умолчанию, ожидайте эту проблему.См. Раздел Создание виртуального хоста по следующему URL: http://framework.zend.com/manual/en/learning.quickstart.create-project.html, и это решит проблему!

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

Просто поставь косую черту перед своим путем.Поэтому вместо

<img src="images/logo.gif" />

Попробуйте

<img src="/images/logo.gif" />

Без косой черты он добавит путь к относительному пути, как вы обнаружили.Решение Hammad также должно работать, поскольку оно генерирует правильный код, но теперь вы знаете, почему у вас возникли проблемы.

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