2016-11-01 45 views
0
applications: http://localhost:8080 
    reusable components: http://localhost:8080/components/myapp/ 

这是两个路径,让我来访问我的prooject后,我跑polymer serve本地托管聚合物项目URL路径的自定义

使用app-route元素,我可以改变myapp部分。但我想删除components部分。 所以,我想要的是http://localhost:8080/myapp/ 我该如何做到这一点?

回答

1

我认为你对服务器代表的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 /`的东西,因此会将其余引用添加到您的元素中。

+0

很好的解释。谢谢。 – Abhilash