2010-08-05 4 views
4

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

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

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

Теперь проблема, я ссылающиеся изображения в layouts.phtml справедливых изображений/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, которого нет, изображение находится на публике/изображениях

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

Помогите пожалуйста? Буду признателен!

ответ

10

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

Вот решение:

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

Редактировать после дальнейшего изучения

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

+0

Это нормально, чтобы принять ваши собственные ответы :) – chelmertz

4

Просто поместите косую черту перед своей дорогой. Таким образом, вместо

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

Попробуйте

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

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

+0

есть ли конфигурация для этого? потому что я проверил способ, который вы предлагаете, его не работает, более того, если я попрошу firefox просто «просмотреть изображение», он приведет меня к http: //localhost/images/blah.gif, в то время как у меня есть папка проекта в localhost в которой папка изображений находится в общем каталоге. Есть предположения? –

+0

@ Хаммад Я умудрился решить вашу проблему? И никакая другая конфигурация не имеет/images с правом разрешения и в вашей общей папке веб-сайтов. Если он не работает, возможно, что-то неправильно с вашими htaccess или разрешениями или я не вижу ничего очевидного. – Iznogood

+0

Да, это сработало, но поскольку вы предлагаете больше работать, если zend должен получить папку с изображениями сам по себе, проблема в том, что я создал форму zend в /library/forms/blah/blah.php, и у меня есть попробовал дать ему любую возможную комбинацию, чтобы попасть в папку с изображениями (потому что я пытаюсь получить элемент кнопки с изображением), но это не работает. baseUrl также недоступен в форме zend, любые предложения? –

Смежные вопросы