Angular2网站在刷新基本网址

时间:2017-02-22 14:15:09

标签: angular angular-cli production-environment

我开发了一个angular2网站,我在其中实现了angular2路由,并在生产环境中构建了此网站之后,现在当我从其基本URL开放此网站时,http://urlblocker.net/spotify它工作正常。但是当我导航到任何其他页面并刷新该页面时,例如http://urlblocker.net/spotify/about,它会出现以下错误。

“未找到, 在此服务器上找不到请求的URL / spotify / artist / 0C8ZW7ezQVs4URX5aX7Kqx。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。“

如果我只是打开页面URL,它也会产生同样的错误。 如何解决?

1 个答案:

答案 0 :(得分:5)

Angular2 SPA预计该应用会有1个单一入口点。在不使用散列位置策略的情况下,任何不是入口点的“页面”的刷新都将导致404(该页面在服务器上不存在)。

解决此问题的一种方法是将HashLocationStrategy用作app.module中的提供程序

providers: [
    {provide: LocationStrategy, useClass: HashLocationStrategy},
    ...
]

还要确保索引文件中包含基本href,并且app.module中的import语句需要包含

import {HashLocationStrategy, LocationStrategy} from "@angular/common";