这是一个非常小众的案例,但我正在尝试使用Google的新聚合物Web组件框架进行Yii2测试。这些组件随着凉亭安装(如果可能的话,我也希望以这种方式维护它们),因此在@vendor下面的网络可访问区域之外。
我原本以为我可以创建一个AssetBundle来从供应商/ bower /中提取资源,但看起来AssetBundle类只支持css和js文件。可以通过更改AssetBundle类来覆盖它吗?这甚至是个好主意吗?
或者我应该将这些文件移动到Web可访问空间内的某个位置,以避免尝试管理它们的麻烦吗?
任何帮助都将不胜感激。
答案 0 :(得分:1)
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