【问题标题】:Dart Polymer RoutingDart 聚合物路由
【发布时间】:2015-03-07 20:05:41
【问题描述】:

我有一个使用 Dart 和 Polymer 的单页应用程序。我正在尝试使用route_hierarchical 将路由添加到另一个页面

到目前为止,我尝试的是这样配置路由器:

router = new Router()
router.root
  ..addRoute(name: 'games', path: '/games')
  ..addRoute(name: 'login', path: '/login')
  ..addRoute(name: 'home', defaultRoute: true, path: '/');
router.listen();

我发现我可以使用

new Router(useFragment: ...);

是否启用 URL 中的 hashbang。问题是当我不使用 hashbangs 时,我无法直接使用 URL 访问页面。 (意味着当我点击按钮等时应用程序会路由我)。有没有没有hashbangs的可共享URL的方法?我见过 AngularJs 使用类似的东西

$locationProvider.html5Mode(true)

要删除 hashbangs 并且仍然有可共享的 URL...我不知道我是否真的应该打扰没有 hashbangs 的 URL。我读过他们会给我的 SEO 带来麻烦,对吗?

我现在只使用 Polymer 和 route_hierarchical,不想仅仅为了路由而使用 angular.dart。

【问题讨论】:

    标签: angularjs routing dart polymer angular-dart


    【解决方案1】:

    当您想使用不带片段的 URL 时,您还需要在服务器端使用路由器。

    另见

    【讨论】:

    • 然后用它做什么?返回html页面?我认为这是 SPA 的全部意义所在。
    • 当客户端上的路由修改 URL 时,您需要服务器上的对应物,以便生成的 URL 返回预期的资源。已经有类似的问题有很好的解释。我尝试找到一个并添加一个链接...
    • 我找到了几页(见我更新的答案)。那里的解释不是太广泛,但我希望它无论如何都会有所帮助。
    • 所以如果我没记错的话,你的链接提供了像 Apache/Nginx 这样的网络服务器的解决方案。所以据我了解,我必须向我的网络服务器添加一个重写规则,所以它不提供没有扩展的管理链接(并让客户端管理它?)
    • 我不确定我是否理解您的评论。路由包生成实际上不存在的 URL。您需要一种使服务器正确解释它们的方法。您可以对 Web 服务器使用重写规则或使用路由包,例如,如果 Dart 服务器应用程序提供资源或组合(用于 ststic 资源的 Web 服务器,用于动态资源的服务器应用程序),或者不使用 pushState 而是使用 URL 片段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多