【问题标题】:Do we need server if using hash strategy of routing in Angular2?如果在Angular2中使用路由的哈希策略,我们需要服务器吗?
【发布时间】:2016-02-15 18:23:56
【问题描述】:

如果在Angular2中使用路由的哈希策略(例如使用节点http-server),我们需要服务器还是只打开index.html?

【问题讨论】:

  • 不,使用哈希策略你不需要。你总是指向index.html#something...,所以实际上你总是访问index.html,标签后面的路径告诉页面如何呈现页面。
  • 但是如果你想从你的url 中删除# 符号,那么它需要使用nginx 等任何服务器进行服务器端渲染,也称为pathLocationstretagy。
  • 谢谢。那么你知道哪种策略比另一种更好吗?
  • 两者都很好,这取决于我们,这取决于我们的需要。基本上大多数人使用 HashLocation 是因为它避免了页面刷新问题
  • 没有,它们只是不同而已。它们在不同的情况下可能会更好,如果您想使用 Angular 2 路由器并且您的应用程序只是一个根本不需要后端的客户端应用程序,那么如果您不介意丢失标签在 HTML 中的功能。如果您已经有后端,不妨使用允许最终用户将路径视为常规文件路径的默认策略。

标签: routing angular


【解决方案1】:

您总是需要一台服务器。使用PathLocationStrategy,您需要一个还可以重写请求的服务器。

出于安全考虑,浏览器在从磁盘加载文件时有严格的限制,这将阻止 Angular2 应用程序正确加载。

【讨论】:

    【解决方案2】:

    这真的取决于。例如,出于安全考虑,它将无法在 Chrome (v48) 上运行。

    其中很多都可以,但您必须在不同的浏览器上进行大量测试,以确保您的应用能够在您需要支持的浏览器上运行。

    使用 HashStrategy 可以解决最明显的问题,但不能解决所有问题。如果您需要继续这条路,请使用没有服务器就无法使用的功能更新您的问题。这真的会帮助其他人,谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 2012-06-17
      • 2015-03-10
      相关资源
      最近更新 更多