Экспорт ресурсов из нестандартного каталога общедоступных ресурсов Symfony

Как вы можете указать дополнительное (альтернативное) расположение для assets: install или Assetic: dump для поиска, например

`php app/console assets:install --symlink`

По умолчанию это сканирует и создает символические ссылки для всех пакетов с каталогом Resources/public.

Но я хотел бы использовать альтернативную структуру каталогов, которая добавляет 2 дополнительных уровня, например.

/Gutensite/TemplateBundle/Templates/Admin/Resources/public
/Gutensite/TemplateBundle/Templates/Lunar/Resources/public
/Gutensite/TemplateBundle/Templates/Solar/Resources/public

Используя эту структуру, Assetic: dump и assets: install не находят файлы. И поэтому я не могу их так загрузить:

{% stylesheets '@GutensiteTemplateBundle/Templates/Admin/Resources/public/css/site.css' %}
<link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}

ПРИМЕЧАНИЕ: большинство моих пакетов следуют стандартному формату, но этот пакет шаблонов будет содержать каталог для каждого шаблона, поэтому каталог общедоступных ресурсов находится на 2 уровня глубже. Мне также нужно иметь возможность устанавливать активы в клиентские каталоги за пределами корня Symfony, но это может просто произойти вручную. Однако мне нужно иметь возможность ссылаться на них.


person Chadwick Meyer    schedule 02.01.2015    source источник
comment
Мне кажется, что вы нарушаете структуру Symfony2. Что насчет: / Gutensite / TemplateBundle / Resources / Templates / Admin / public   -  person Putr    schedule 03.01.2015
comment
Да, цель состояла в том, чтобы организовать шаблоны в одной основной папке, а не размещать контроллеры, представления и файлы ресурсов для каждого шаблона во многих местах. Я решил просто создать Templates поставщика и сделать каждый шаблон пакетом, таким образом, они отделены от моих обычных функций. связки и многое другое. Но я все же хотел бы знать ответ на этот вопрос, потому что вы должны иметь возможность контролировать альтернативное место установки. И у меня есть собственные клиентские файлы, которые нужно установить из некорневых расположений.   -  person Chadwick Meyer    schedule 05.01.2015
comment
Вы пробовали /Gutensite/TemplateBundle/Templates/Resources/public/Admin вместо /Gutensite/TemplateBundle/Templates/Admin/Resources/public?   -  person Damian Polac    schedule 21.02.2015
comment
@ user3749178 Да, в данном случае это работает, потому что это стандартное расположение. Но он разбивает шаблон на слишком много мест. Это также не работает для конкретных клиентских каталогов, находящихся вне корня Symfony. Я решил создать / Templates / vendor и сделать каждый шаблон отдельным пакетом. Это хорошо работает в рамках Symfony. Но это не решает этот вопрос, особенно в отношении клиентских файлов вне корня Symfony в их собственных папках vhost.   -  person Chadwick Meyer    schedule 23.02.2015


Ответы (1)


Вы зарегистрировали свой пакет в AppKernel.php?

В качестве альтернативы, если у вас нет класса пакета в вашем пакете, вы можете использовать эту нотацию в своем шаблоне веточки:

{% stylesheets '%kernel.root_dir%/../src/Gutensite/TemplateBundle/Templates/Admin/Resources/public/css/site.css' %}
    <link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}
person Youri_G    schedule 11.06.2015
comment
Да, мы регистрируем пакет в AppKernel.php. Однако это не работает, и было бы неплохо иметь возможность указать альтернативные местоположения файлов, особенно для клиентских файлов за пределами основной файловой структуры. - person Chadwick Meyer; 15.06.2015