我已经构建了一个Angular4应用程序,一切运行良好,但部署后我遇到了一个奇怪的问题
我有3条路线:
/
:AppComponent
/login
:LoginComponent
/editor
:我的EditorComponent
在开发模式下,当我在导航器localhost://4200/login
或localhost://4200/editor
的网址栏中写入工作正常但在部署后我执行此操作时,我得到404 Page not found
!!
但是,当我使用像routerLink
这样的角色<a routerLink="/login">Login</a>
并点击它时,我会被成功重定向到LoginComponent
!!
为什么(在部署之后)当我使用routerLink时一切正常但如果我尝试直接从导航器的url栏访问该组件,我得到404 Page not found
?!!
答案 0 :(得分:0)
刷新或直接访问您的应用程序时出现404错误,因为浏览器中的实际地址正在更新(没有#approach)。
如果您不想出现404错误,则需要将服务器更新为 为您定义的每个路径路径提供index.html文件。
如果要切换到HashBang方法,则需要使用此配置:
在AppModule.ts
import {LocationStrategy, HashLocationStrategy} from '@angular/common';
providers:[
{provide: LocationStrategy, useClass: HashLocationStrategy}
]
在这种情况下,当您刷新页面时,它会再次显示(但您的地址中会有#)。