未找到直接浏览时的角度路由

时间:2018-04-04 06:23:54

标签: angular hosting angular-routing

所以我定义了一些路线/ home,/ contact,... 使用ng build --prod --base-href创建dist文件夹,并通过filezilla将dist文件夹的内容复制到托管服务器。当直接浏览网站并从网站上重定向时没有问题,但如果您直接浏览到网站/主页,它会显示404 Not Found The requested URL /home was not found on this server

托管支持回复这些可能是我们无法支持的.htaccess文件中的CleanURL。

我认为干净的网址是可读的restcalls,但也许意义不仅仅是休息。但这有解决方案吗?

1 个答案:

答案 0 :(得分:1)

您更有可能未在提供商中定义HashLocationStrategy(在app.module.ts中)

此处更新..我试图加入评论,但它无法格式化

有三种方法 第一路

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,..
    RouterModule.forRoot(routes, { useHash: true }) 
  ],
  declarations: [
    AppComponent, ...
  ],
  providers: [],
  bootstrap: [ AppComponent ]
})

第二路

@NgModule({
  declarations: [
    AppComponent, ...
  ],
  imports: [
    AppRoutingModule,
    BrowserModule,
    BrowserAnimationsModule,
    FormsModule,
    HttpModule, ...
  ],
  providers: [
    { provide: LocationStrategy, useClass: HashLocationStrategy }
  ],
  entryComponents: [],
  bootstrap: [AppComponent]
}) 

第三种方式 - 推荐用于Angular2 使用PathLocationStrategy

import {APP_BASE_HREF} from '@angular/common';

@NgModule({
providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]
})

有利有弊 - 我使用第二,因为我来自angular1,2,4,5(旧学校):p