在浏览器中将URL重新加载到定义的路由器路由时返回404

时间:2018-07-05 15:24:48

标签: javascript angular typescript routing

我将我的angular 4应用程序上传到产品服务器上,在本地服务器上运行良好。在服务器上,我可以通过链接访问页面,但是,如果尝试直接在浏览器中写URL,则页面转到404。我可以通过.htacces解析,但它不是apache服务器,所以不能。是否只有解决问题的前端解决方案?

1 个答案:

答案 0 :(得分:1)

Angular中使用的默认客户端路由策略是PathLocationStrategy

如果您要手动输入URL,则需要将服务器配置为针对从其请求的所有不同URLs返回相同的页面。此策略需要服务器端的一些合作。

  

是否有前端解决方案来解决该问题?

使用HashLocationStrategy

  

HashLocationStrategy使用URL的哈希片段部分存储   状态为客户端,则设置更容易,不需要任何操作   从服务器端进行合作,但不利的一面是   发布后即可与Angular Universal一起使用。

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    RouterModule.forRoot(routes, { useHash: true }) //enable hashbang approach
  ],

Location Strategies in Angular Router

Which strategy is best?