如果我使用Polymer starter kit,它在本地运行良好。 我可以导航到http://localhost:8080/,所有3个视图的链接都可以正常工作。
现在,如果我在诸如http://myservername:8080/mywonderfulapp/之类的网址上的网络服务器(与其他应用共享)上托管此应用,我就会遇到路由问题。有没有办法可以提到app-route来获取相对URL?
我尝试更改html文件以获得相对网址
<link rel="import" href="./src/my-app.html">
<a name="view1" href="./view1">View One</a>
<base href="/mywonderfulapp/">
但我似乎无法以类似的方式修复app-routing。
关于SO的所有类似问题似乎都是关于Polymer的1.0之前的版本,并提及page.js和hash-bang路由,而不是HTML5历史友好的URL和app-route组件。
我更愿意进行最少的代码更改以确保
答案 0 :(得分:2)
到目前为止,我最接近的是:
在app-route模式中提及URL前缀的占位符。
<app-route
route="{{route}}"
pattern="/:prefix/:page"
data="{{routeData}}"
tail="{{subroute}}"></app-route>
然后在锚点的href
属性中使用它
<a name="view1" href="/[[routeData.prefix]]/view1">View One</a>
<a name="view2" href="/[[routeData.prefix]]/view2">View Two</a>
<a name="view3" href="/[[routeData.prefix]]/view3">View Three</a>
这种方法的缺点是,即使在本地工作,我也必须将URL用作http://localhost:8080/mywonderfulapp/,但至少在部署到我的远程Web服务器时我不必再修改代码。
答案 1 :(得分:0)
正如评论中所述,这已在stackoverflow.com/questions/39608956/polymer-error-on-reload ing上的类似帖子中解决了
firebase用户的附注 - 如果您将相同版本的入门工具包部署到firebase并在CLI上执行firebase服务,则此问题甚至会发生在localhost中,因此您将需要上述修复,即使是在那里也是如此。