【发布时间】:2017-11-23 09:24:16
【问题描述】:
狭义问题
通过故障排除,我认为我已将“更大的问题”缩小到以下问题。 (但我可能是错的。):
如何将最新版本的<iron-icons> 正确下载到我的本地计算机?
“最新版本”是指通过以下方式导入的版本:
<base href="//polygit.org/polymer+:master/components/">
<link rel="import" href="iron-icons/iron-icons.html">
以上版本导入<iron-icons>works on my demo here.
但是,当我执行以下任一操作时:
bower install --save PolymerElements/iron-icons
bower update --save
并尝试像这样在我的本地服务器上导入:
<link rel="import" href="/bower_components/iron-icons/iron-icons.html">
它默默地失败了,我根本看不到任何图标。但我确实看到了图标应该呈现的额外空间。
更大的问题(我要解决的真正问题)
我正在尝试让我的 <iron-icons> 在浏览器中正确呈现。
我希望看到什么
我希望看到两个像这样的<iron-icon> 元素:
(锚定在其他测试元素之间:Hello World 和 <img>)
我实际看到的
根本没有图标。但是它们应该呈现的空白区域。
重现步骤
运行
bower install --save PolymerElements/iron-icons
或者,如果 <iron-icons> 已经安装:
bower update --save
然后
polyserve
或
polymer serve
版本
我相信我正在使用<iron-icons> 的 v2.0.1。 Here is the entire contents of the bower.json file.
"iron-icons": "PolymerElements/iron-icons#^2.0.1",
配置
操作系统:macOS Sierra 10.12.6
硬件:MacBook Air
浏览器:Chrome 版本 60.0.3112.113(官方版本)(64 位)
演示
代码
以下代码确实按预期呈现<iron-icons>:
<base href="//polygit.org/polymer+:master/components/">
<script src="webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="polymer/polymer-element.html">
<link rel="import" href="iron-icons/iron-icons.html">
<link rel="import" href="iron-icon/iron-icon.html">
<dom-module id="demo-el">
<template>
Hello world
<iron-icon icon="add"></iron-icon>
<iron-icon icon="favorite"></iron-icon>
<img src="//lorempixel.com/400/200/" />
</template>
<script>
class DemoEl extends Polymer.Element {
static get is() {
return 'demo-el'
}
constructor() {
super();
}
}
customElements.define(DemoEl.is, DemoEl);
</script>
</dom-module>
以下代码未按预期呈现<iron-icons>(在本地提供):
<link rel="import" href="/bower_components/polymer/polymer-element.html">
<link rel="import" href="/bower_components/webcomponentsjs/webcomponents-lite.js">
<link rel="import" href="/bower_components/iron-icon/iron-icon.html">
<link rel="import" href="/bower_components/iron-icons/iron-icons.html">
<link rel="import" href="/bower_components/paper-input/paper-input.html">
<dom-module id="app-main">
<template>
Hello world
<iron-icon icon="add"></iron-icon>
<iron-icon icon="favorite"></iron-icon>
<img src="//lorempixel.com/400/200/" />
</template>
<script>
class AppMain extends Polymer.Element {
static get is() {
return 'app-main'
}
constructor() {
super();
}
}
customElements.define(AppMain.is, AppMain);
</script>
</dom-module>
但是,当我直接替换以下代码时,上面的代码确实按预期呈现 <iron-icons>:
<base href="//polygit.org/polymer+:master/components/">
<link rel="import" href="iron-icons/iron-icons.html">
为
<link rel="import" href="/bower_components/iron-icons/iron-icons.html">
编辑
通过使用 CDN 比较导入文件的文本
<base href="//polygit.org/polymer+:master/components/">
<link rel="import" href="iron-icons/iron-icons.html">
和本地进口:
<link rel="import" href="/bower_components/iron-icons/iron-icons.html">
我发现iron-iconset-svg.html 文件的导入版本存在差异。我的 bower.json 文件说依赖版本是 "iron-iconset-svg": "1 - 2" 或 "iron-iconset-svg": "polymerelements/iron-iconset-svg#^2.0.0" 但 bower.json 文件说依赖版本是 "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0"
所以,现在问题似乎减少到如何让本地版本的iron-icons.html 导入与在线CDN 导入版本相同的iron-iconset-svg.html 版本。
编辑 2
当我从 CDN 复制 iron-iconset-svg.html 文件并将其粘贴到我的本地文件系统时,问题仍然存在。所以,显然还有其他事情正在发生。
编辑 3
I followed the instructions here for upgrading to Polymer 2.0:
https://www.polymer-project.org/2.0/docs/upgrade#update-bower-dependencies
- 删除现有的 bower_components 文件夹。
rm -rf bower_components
- 将 bower.json 中的 Polymer 版本更新到最新版本。
Component | Version
---------------------|--------
Polymer | ^2.0.0
webcomponentsjs | ^1.0.0
web-component-tester | ^6.0.0
Polymer elements | ^2.0.0
- 安装新的依赖项。
bower install
这并没有解决问题。但是我无法将Polymer elements 更新为^2.0.0
"dependencies" : {
...
"polymer-elements" : "^2.0.0",
...
}
导致了一个错误,所以也发生了:
鲍尔.json"dependencies" : {
...
"polymerelements" : "^2.0.0",
...
}
也是这样:
鲍尔.json"dependencies" : {
...
"PolymerElements" : "^2.0.0",
...
}
【问题讨论】:
-
您的本地项目中安装了什么版本的 iron-icons?
-
@Ofisora:我相信它的 v2.0.1。 bower.json:
"iron-icons": "PolymerElements/iron-icons#^2.0.1",[这里是整个 bower.json 文件。]("iron-icons": "PolymerElements/iron-icons#^2.0.1",) -
您的
bower.json全部内容的链接无效。 -
@Ofisora:我相信它是 v2.0.1。 bower.json: "iron-icons": "PolymerElements/iron-icons#^2.0.1", Here is the entire bower.json file. ... pastebin.com/raw/TT7e5TN8
-
@Ofisora:请阅读我刚刚添加的编辑部分。我已经取得了一些进展,并认为我已经将问题与
iron-icons.html文件导入iron-iconset-svg.html文件隔离开来。
标签: polymer polymer-2.x iron-elements