我创建了一个angular2 app&成功部署了它。
应用程序在花费一些时间加载后正确启动&然后我可以导航到不同的组件。
但是当我将URL中的直接地址设为:
www.sample.com/about
它说404错误。
即使我使用ng build --prod
创建捆绑包,它也能正确创建dist
文件夹&我只能使用链接导航到不同的组件。
但我也无法直接从本地系统的URL访问组件。
我正在使用http-server
。
是否需要任何额外配置才能使其正常工作?
答案 0 :(得分:1)
通过实现HashLocationStrategy解决了这个问题,HashLocationStrategy将#添加到您的所有路由中。 您可以通过将HashLocationStrategy添加到AppModule提供程序来实现此目的。
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}],
并添加相应的导入
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
这解决了你的问题。
答案 1 :(得分:0)
您使用Node作为部署服务器吗?或者您正在使用IIS或类似的服务器。
我最好的猜测是,当你从服务器运行时,它没有找到你在这个例子about
中寻找的资源。您必须正确配置服务器上的路由。
如果使用IIS,如果需要提供未知资源,则必须使用URL重写或MVC路由来提供默认资源。
在本地使用ng serve
或使用lite-server
时,他们会处理这些未知路径。
希望这有帮助!!