通过在地址栏中键入url,Angular 2 rc4无法转到页面

时间:2016-07-19 08:55:31

标签: angular webpack angular2-routing

我只是将我的项目更新到版本rc 4并解决了问题。

当我使用systemjs配置我的项目时,一切正常。

当我使用webpack运行项目时(我正在使用angular2-webpack-starter),项目运行成功,没有错误。我可以转到[routerLink]配置的每个链接。

但如果我在浏览器的地址栏中输入网址,请使用相同的链接。什么也没发生。我的应用没有加载任何东西。 这是我项目的一些屏幕截图:

Screen shot

任何人都可以帮助我吗?我非常感谢你。

2 个答案:

答案 0 :(得分:2)

这需要由后端服务器处理。

您需要将所有请求发送到索引页面,以便Angular可以接收请求并从那里解析路由。

当您访问索引(/)页面时发生的事情Angular接管,当您单击[routerlink]时,它会假装更改浏览器中的页面(它实际上并没有对服务器执行任何操作)。当您通过键入URL访问任何不是索引的页面时,您没有加载Angular应用程序,因此无法在浏览器中编辑路由。通过将所有路由转发到索引,我们让Angular决定应该如何处理所有路由,而不是服务器。

答案 1 :(得分:0)

如果您通过JS提供内容。添加此代码以表达路线

var path = require('path')

app.get('/*', function(req, res) {
  res.sendFile(path.join(__dirname + '/static/index.html'));
});