Можно ли зарегистрировать или опубликовать файлы активов css, js из Bundle в Symfony 2

0

Как автоматически регистрировать js, css файл в главном теге изнутри пакета? поэтому нам не нужно добавлять его вручную в макет.

В рамках zend для этого используются HeadScript и InlineScript Helper, prepend или append. Как насчет symfony2? это тоже возможно?

В zend framework мы можем зарегистрировать его следующим образом:

public function onBootstrap($e) {
$sm = $e->getApplication()->getServiceManager();
$headLink = $sm->get('viewhelpermanager')->get('headLink');
$headLink->appendStylesheet('/assets/MyModule/css/mystylesheet.css');
}

Я имею в виду, я хочу зарегистрировать его, например, из AcmeBlogBundle.php поэтому нам не нужно добавлять вручную в <head></head> в макете.

Теги:

2 ответа

0

Вы не можете сделать это, как в Zend. Но вы можете определить соответствующий блок с js в базовом макете только один раз. И затем из любого шаблона вы можете поместить все, что хотите в этот блок. Symfony реализует немного другую логику, чем Zend.

В вашем макете:

<head>
    {% block custom_head_js %}
    <some basic js files for all the pages>
    {% endblock%}
</head>

В вашем храме:

{% block custom_head_js
    '@YourBundleNamespace/YourBundleName/Resources/public/js/your_js_filename.js'
%}

<script src="{{ asset_url }}"></script>
{% endblock %}

Поэтому, поскольку я сказал, что не нужно менять базовую компоновку каждый раз, когда вы хотите добавить js в "head" js файлы, вы должны сделать это только один раз.

0

Я не уверен, что это то, что вы ищете, но проверьте это, это покажет вам, как включить каждый js файл в каталог, не перечисляя их вручную.

  • 0
    Я имею в виду, я хочу зарегистрировать его, например, из AcmeBlogBundle.php в <head></head> без редактирования файла макета.
  • 0
    Ну, вы можете использовать переменные, которые вы назначаете в своем php-файле и используете в своем шаблоне, но это невозможно, если вы хотите сделать это без изменения НИЧЕГО в шаблоне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню