我认为你对服务器代表的URL以及“通常”甚至不被传递到服务器的逻辑URL之间感到困惑。 <app-route>
(及其伴侣部分<app-location>
)依赖于将状态推入浏览器的地址栏,但通常并不意味着向服务器请求获取文件的请求。
我说“通常”,因为显然用户可以复制地址栏并将其粘贴到浏览器中(或者只是在浏览器中显示页面时刷新页面)并导致将该URL发送到服务器。通常情况下,服务器应该使用“/index.html”自动响应那些“不真实的文件”请求。
Polymer serve
并不真正尝试解决这类问题。它主要是用于应用程序测试的快速服务器。它提供的第一个网址(http://localhost:8080)将会是你使用的内容,如果你有一个完整的应用程序。你的index.html文件应该位于URL的根目录(即你运行聚合物的目录服务),然后它将使用html导入装载你的组件,从它们碰巧存在的任何子目录中。你的网址应该反映这一点。因此,如果您的主应用程序位于src/
子目录中,您应该参考它<link rel="import" href="/src/my-app.html">
注意:通过绝对URL引用它是非常重要的,因此,当用户将url链接到地址栏时,服务器返回请求的元素/index.html
是在正确的路径和像/application/logical/path/src/myapp.html
不显山露水它提供了第二url基本上你正在构建自己的元素,这将最终走在别人的bower_components但现在你在自己的仓库与自己bower_components正在开发目录与元素的级别相同。您的元素将要导入类似<link rel="import" href="../polymer/polymer.html" but in physical directory terms would be at bower_components/polymer/polymer.html. In this case polymer is mapping bower_components to http://localhost:8080/components and your root to http://localhost:8080/components/myapp. So when your refer to
../ as part of your relative its basically inside
bower_components /`的东西,因此会将其余引用添加到您的元素中。
很好的解释。谢谢。 – Abhilash