除了我之外,对于任何人来说,以下情况可能是显而易见的,也许它甚至不是纯粹的聚合物问题,但我对这个问题感到很遗憾,并会非常感激帮助。
首先: - 使用聚合物2和凉亭
问题:
我创造了几个组件。其中一些是完整的应用程序本身,因此他们有一组依赖加载在通过凉亭。这些组件中的每一个都存在于他们自己的git repo中。非常好。这很好。
每个应用都有这样的结构:
bower_components/
my-comp1.html
my-comp2.html
例如使用纸张输入我会有一个
<link rel="import" href="bower_components/paper-input/paper-input.html">
现在我想使用这些组件&#39; my-comp1&#39;并在另一个应用程序中使用它。所以我的意思是让bower从各自的仓库中安装它们。
我应该说我有一个bower.json.ignores文件,其中列出了通过bower安装时不应该部署的所有文件,这些文件还列出了&#b; bower_components&#39;文件夹中。
这是实际问题。让我们说我的新应用程序&#39; my-app&#39;加载&#39; my-comp1&#39;来自外部的git。
但是当我安装它时,它将落在&#39; my-app&#39;的bower_components文件夹中。 &#39; my-comp1&#39;会因为他们不解决而打破
&#39;我的应用内/ bower_components /纸张输入/纸张input.html&#39;
但要
&#39;我的应用内/ bower_component /我的-COMP1 / bower_components /纸张输入/纸张input.html&#39;哪个不存在。
我已经在凉亭和聚合物世界的网上搜索了几个小时的建议,但无法找到如何组织组件化项目的答案。也许我只是忽略了显而易见的事情,但我真的坚持这一点。
重要提示:我没有使用内置的Polymer服务器,而是通过我自己的服务器(jetty)运行代码,在我看来这是必不可少的。
非常感谢任何帮助。
谢谢Joern
答案 0 :(得分:2)
这是一个已知的问题&#34;因为您需要从自我角度和应用程序角度为组件提供服务。这正是polymer serve
正在解决的问题。
解决方案如下 - 默认情况下,您将假定组件是在应用程序透视图中提供的。因此,在您的组件中编写
<link rel="import" href="../paper-input/paper-input.html">
。
结构:
my-app
├─ bower_components
│ └─ paper-input
│ └─ my-comp1
| | └─ my-comp1.html (import "../paper-input/paper-input.html" works)
| └─ my-comp2
└─ my-app.html
但是,如果您想要处理组件本身,则需要更改其路径。
结构:
my-comp1
├─ bower_components
│ └─ paper-input
└─ my-comp1.html (import "../paper-input/paper-input.html" works)
聚合物服务通过两种方式解决这个问题&#34;服务&#34;:
对于组件:
http://localhost:8080/components/my-comp1/
=&GT;每一个请求都在&#34;外面&#34;例如一个额外的../
将被重定向到bower_components/
对于应用
http://localhost:8080/
=&GT;没什么特别的需要
如何在不使用polymer serve
的情况下解决此问题取决于您的服务器解决方案。你可以使用符号链接,重定向,重写,......
一个简单的解决方法也是在我的应用内部工作并打开http://localhost/bower_components/my-comp1/demo/
。