2012-02-21 7 views
3

У меня есть изображение в моем комплекте на Bundle/Resources/public/images/abc.png.Как ссылаться на изображение пакета из Bundle?

Я хочу ссылаться на него из файла шаблона. Моя первая мысль была <img src="{{ asset('images/abc.png') }}" />, которая, очевидно, не работает.

Я не хочу иметь такую ​​папку, как Bundle/Resources/public, в визуализированном HTML-формате, так что есть способ правильно ссылаться на файл ресурсов? Я не мог найти ничего об этом в документации.

ответ

5

В assets:install командных мест (или символические ссылки) все ресурсы пучка в директории web/bundles. AcmeDemoBundle/Resources/public/images/img.png затем помещается под web/bundles/acmedemo/images/img.png и вы можете использовать asset('bundles/acmedemo/images/img.png') в своем шаблоне. Это «официальный» способ, поэтому большинство пакетов используют активы таким образом.

Вы можете написать свою команду по установке собственного актива, если хотите, см. vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php или любое другое решение, которое размещает активы в каталоге web.

0

Просто поместите изображение в папку, указанную в методе asset.

| app/ 
| src/ 
| web/ 
`-| images/ 
    `-| abc.png 
    | javascript/ 
    | css/ 
+1

Я хочу сохранить его в обслуживании и не иметь одной большой папки с ресурсами из нескольких пачек. Лучше ли это делать в symfony? – Chris

+1

Я не могу рассказать вам о лучших практиках, но папка, которую вы передаете методу 'asset', оценивается из корня вашего веб-каталога. Итак, что бы вы ни передали методу, будет папка под каталогом 'web', который ищет symfony. –

+0

Готов поспорить, что есть другие варианты. Мне придется посмотреть на некоторые пакеты реального мира, как они обращаются к изображениям. – Chris

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