我已经开始看到有关Angular2的一些信息,特别是UI路由器状态和路由。我注意到的是,与Ang1相反,我不得使用'#'字符以便从路线导航到另一个路线。 这意味着,如果我进入状态foo
,其路由为/foo
,我已经到类型:为什么UI-Router停止使用哈希字符?
mydomain.com/app/foo
,而不是旧mydomain.com/app /#/ foo
这显然启动了一个HTTP请求到服务器中的url /foo。在Ang1响应当然会是一个404(除非我以前创建一个静态鬼页面,例如爬虫),但与Ang2我得到相同的HTML(index.html),我要求:
mydomain。 com/app/
这基本上是一个“加载....”页面。
我想知道的是,这是如何可能的,如果这与新一代框架提供的服务器端渲染功能相关联。
谢谢
对不起,但我没有得到如何服务器与此有关。据我了解pushState不会触发任何页面重新加载,所以我怎么可能看到页面的请求? – Nemus
为了澄清,如果您希望能够为除根之外的任何路由(例如'/ app/foo')添加书签并稍后返回(例如,从刷新或新浏览器或选项卡),则区别适用。使用'useHash:false'(pushState),您的服务器将不得不专门配置为映射这些路由,并为这些情况正确提供客户端。但是,使用'useHash:true',不需要这种特殊的服务器端处理;你只有一个服务器端点,即根目录;按照Web标准,哈希片段完全由浏览器处理。 – Will