聚合物3相对路径

时间:2018-06-12 13:06:20

标签: javascript svg polymer relative-path

我想将聚合物元素从聚合物2迁移到聚合物3中。

聚合物元素使用带有.svg文件的文件夹的相对路径。

const url = this.resolveUrl('./icons/' + this.icon + '.svg');

问题是旧组件文件是.html文件,因此如果包含它,则脚本部分中的相对路径始终相同。

现在组件文件是一个javascript文件,因此相对路径(。)是包含javascript文件的文件的路径。


1 个答案:

答案 0 :(得分:3)

要解决此问题,请将以下getter方法添加到元素类中:

static get importMeta() { 
  return import.meta; 
}

加载元素后,上面的getter会分配元素的importPath属性。 resolveUrl现在将根据importPath解决相对路径,而不是基于主文档。

顺便说一句,您也可以在数据绑定中使用importPath,如下所示:

<img src$="[[importPath]]/icons/[[icon]].png">

有关Polymer默认情况下不重写模板中URL的原因的更多信息,请see the documentation on DOM templating

(顺便说一句,看起来该页面上关于importPath的内容需要更新。我raised an issue使用我在上面概述的最新信息更新网站。)

希望有所帮助