外部链接在Angular 2中不起作用

时间:2017-05-14 01:38:03

标签: angular nginx angular2-routing

网站例如:http://oktafox.com

使用路由进行设置,因此当您点击网页或链接时,网址会更改为:

/articles
/work
/articles/1

但是,如果您点击此链接:http://oktafox.com/articles/1

它会抛出404.如何设置它以使其进入所需的页面而不是404?

2 个答案:

答案 0 :(得分:2)

看起来您的服务器端路由需要一些配置。当您点击http://oktafox.com时,您的服务器正在发回索引页面,然后Angular启动并设置路由。这就是为什么在点之后点击链接的原因。

但是如果直接转到http://oktafox.com/articles,您的服务器就会尝试查找该文档,但它并不存在。必须告诉您的服务器始终发送回索引页面,以便Angular可以读取" / articles"从URL并继续正确路由。

请注意,如果您在Angular中切换到基于散列的路由(如http://oktafox.com/#/articles),您可以完全避免此问题,因为服务器没有看到该部分路由。但不建议:https://angular.io/docs/ts/latest/guide/router.html

答案 1 :(得分:1)

弗兰克莫迪卡用上面的答案击中了头部。经过一番挖掘后,我发现这是我的Nginx服务器的配置问题。

以下是修复程序的链接:https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode