Где разместить основные ресурсы в Symfony2? - PullRequest
8 голосов
/ 29 сентября 2011

Я начал создавать сайт с Symfony2, и у меня возникло небольшое затруднение относительно ресурсов.

В книге Symfony2 говорится, что каждый файл ресурсов должен быть в комплекте, но как насчет большинстванеобходимые изображения, файлы .js и .css, которые я использую в файле base.html.twig на каждой странице?

Должен ли я создать CoreBundle или что-то похожее, только для этих файлов, или я должен поместить их впапку app \ Resources (или, может быть, прямо в веб-папке)?Если я могу использовать папку app \ Resources для них, как я могу сослаться на эти файлы из шаблона?

Создание пакета только для этого кажется немного ненужным, и URL-адреса ресурсов для этих файлов тоже ужасны (например, '/bundles/projectcore/images/logo.jpg') на мой взгляд.

Какая лучшая практика здесь?

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

У меня были ситуации, когда я хранил все файлы в / web (т.е. / web / js) и другие, где я хранил их в пакете «Активы».

Если выПри разработке пакета, который будет многократно использоваться во многих проектах, имеет смысл хранить активы в этом пакете.Я думаю, что вы бы затем опубликовать / установить эти активы в веб-папку с помощью командной строки.Например, допустим, у вас был BlogBundle, который требовал определенного CSS.Вы бы хранили CSS в этом пакете, поэтому в следующий раз, когда вы будете использовать BlogBundle для проекта, вы можете легко повторно использовать CSS.

Как и во многих других случаях с Symfony2, ваши личные предпочтения играют большую роль в этих решениях,Я рекомендую придерживаться того, где вы храните свои активы.Необходимость управления ресурсами, разделенными в трех разных местах (веб, AssetsBundle, другие пакеты), может стать большой головной болью.Так что выбирайте местоположение и старайтесь быть последовательными.

Что касается доступа к активам из приложения / ресурсов ... вы можете использовать Assetic для этого.Я не очень знаком с этим, но я считаю, что вы можете загружать активы из любого места в вашем проекте.На самом деле я бы рекомендовал взглянуть на основной код Assetic (смотрите vendor\Assetic) вместо помощника Symfony2 Assetic, потому что вы получите лучшее представление о том, что возможно.

2 голосов
/ 29 сентября 2011

Мы использовали символическую ссылку в Linux, чтобы / web / bundles / projectcore / images указывал на src / Bundle / Resources / public / images

С Subversion в Netbeans он работает,Приятно, что все ваше приложение остается в папке / src / Bundle

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