Angular2网站在刷新除基本URL之外的任何页面时均中断

Maj*_*NWL 1 production-environment angular-cli angular

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

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

如果我只是打开有关页面URL的信息,也会出现相同的错误。如何解决呢???

Jef*_*ice 5

Angular2 SPA期望该应用程序有1个单一入口点。如果不使用哈希定位策略,则对不是入口点的“页面”进行任何刷新都会导致404(该页面在服务器上不存在)。

解决此问题的一种方法是使用HashLocationStrategy作为app.module中的提供者

providers: [
    {provide: LocationStrategy, useClass: HashLocationStrategy},
    ...
]
Run Code Online (Sandbox Code Playgroud)

另外,请确保/的索引文件中具有基本href,并且app.module中的import语句需要包含

import {HashLocationStrategy, LocationStrategy} from "@angular/common";
Run Code Online (Sandbox Code Playgroud)