Это очень нишевый случай, но я пытаюсь использовать новую платформу Google Polymer для веб-компонентов в тесте с Yii2. Компоненты устанавливаются с помощью bower (и, если возможно, я бы тоже хотел их поддерживать), и, таким образом, они находятся вне зоны, доступной через Интернет в @vendor.
Сначала я думал, что смогу создать AssetBundle для извлечения ресурсов из вендора / bower /, но похоже, что класс AssetBundle поддерживает только файлы css и js. Можно ли это изменить, внеся изменения в класс AssetBundle? Это даже хорошая идея?
Или я должен переместить эти файлы куда-нибудь в пространство, доступное через Интернет, чтобы избавить себя от головной боли при попытке управлять ими?
Любая помощь будет оценена.
Yii2 assetManager опубликует все файлы в указанном исходном каталоге, а не только css и js. Затем вы можете просто создать необходимые теги ссылок в вашем макете, например, :
Зарегистрируйте свой пакет активов:
$polymerAssetBundle = \app\assets\PolymerAssetBundle::register($this);
Или, если вы хотите загрузить его в голову:
$this->registerAssetBundle(\app\assets\PolymerAssetBundle::className(), \yii\web\View::POS_HEAD);
Тогда вы можете импортировать ваш полимерный компонент следующим образом:
<link rel="import" href="<?= $polymerAssetBundle->baseUrl ?>/path/to/your/component.html">
Около baseUrl
:
если вы укажете свойство sourcePath, менеджер ресурсов опубликует ресурсы и соответственно перезапишет это свойство.
Прочитайте больше : http://www.yiiframework.com/doc-2.0/yii-web-assetbundle.html
Других решений пока нет …