Страница 1 из 1

Кеширование виджета новым поведением CacheableWidgetBehavior. Assets

Добавлено: 2018.03.02, 03:19
zxczxc12
Решил попробовать новое поведение по кешированию виджетов

Все работает, но есть проблема.
При применениии этого поведения, перестал подключаться Asset для этого виджета и как следствие - отсутствие необходимых для работы виджета js и css

Как победить ситуацию , если учесть, что мне как то не хочется css и js впихивать в основной app.css и app.js файл ?

widget/views/index.php

Код: Выделить всё

<?
FaceFeedWidgetAsset::register($this);
?>

Re: Кеширование виджета новым поведением CacheableWidgetBehavior. Assets

Добавлено: 2018.03.02, 04:01
zxczxc12
поправочка

такое происходит и при обычном кешировании

Код: Выделить всё

if ($this->beginCache($id, ['dependency' => $dependency])) {
поэтому тут вообще вопрос о цешировании

Re: Кеширование виджета новым поведением CacheableWidgetBehavior. Assets

Добавлено: 2018.03.02, 05:33
zxczxc12
Отвечу сам себе

Нужно инициировать ассеты виджета в том файле view, в который вставлен виджет
Иначе - никак


Походу когда начинается оптимизация и кеширования - сразу начинает страдать красота :?

Re: Кеширование виджета новым поведением CacheableWidgetBehavior. Assets

Добавлено: 2018.03.02, 10:32
urichalex
А что если ассеты определить до кэширования?

Re: Кеширование виджета новым поведением CacheableWidgetBehavior. Assets

Добавлено: 2018.03.02, 11:04
rugabarbo
Заменить:

Код: Выделить всё

FaceFeedWidgetAsset::register($this);
– на:

Код: Выделить всё

$this->renderDynamic('\my\full\namespace\to\this\widget\FaceFeedWidgetAsset::register($this);');
При этом прописать настоящий namespace виджета.