【问题标题】:Angular dart bookmarking viewsAngular dart 书签视图
【发布时间】:2014-08-15 15:41:32
【问题描述】:

根据我的经验,Angular Dart 与您的后端服务器实现无关。它不关心您的服务器是否使用 java、ruby 或其他语言。 Angular dart 有视图的概念,并且有一个模块来处理它们之间的路由。当浏览器改变视图时,这些路由也会修改浏览器的地址栏。

我遇到过这个问题。虽然 Angular 路由模块会改变地址栏,但因为就后端服务器而言,所述路由实际上并不存在,因此总是会发出 404 响应。

如果是这种情况,那么我发现通过角度路由到不同页面的能力毫无意义。我还不如以更传统的面向服务器的方式编写代码来在页面之间进行转换,而不是使用 Angular。

是不是缺少了什么?有没有办法让你的服务器解析到正确的角度页面?

【问题讨论】:

    标签: dart angular-dart


    【解决方案1】:

    您可以使用usePushState: false,然后只更改 URL 的(客户端)本地部分。
    https://github.com/angular/angular.dart.tutorial/blob/master/Chapter_06/web/main.dart#L27
    哈希后的这部分永远不会发送到服务器。
    这可能会给 SEO 带来一些额外的工作。

    http://example.com/index.html#someRoutePath/anotherRoutePath
    

    或者您可以配置您的服务器,使每个请求独立于请求中的路径进行处理,并使用路由包服务器端。

    另见https://stackoverflow.com/a/17909743/217408

    【讨论】:

    • 哇,这个解决方案开箱即用,无需更改后端服务器中的任何内容。一项工作就是提供文件服务。
    【解决方案2】:

    您可以将后端服务器配置为将所有路由指向同一个文件(使用所有体面的服务器都应该支持的某种通配符路由)。所以app/some/pageapp/another/page 都会被app.html 服务。然后在您的应用启动时,您可以让 Angular 解析页面的 URL,并手动路由到该页面。

    我在 Polymer 应用程序(使用 Route 库)中使用了这种方法,效果很好。对于 Angular,它应该也可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 2014-04-27
      • 2013-12-22
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多