代码之家  ›  专栏  ›  技术社区  ›  Burst of Ice

未找到直接浏览时的角度布线

  •  3
  • Burst of Ice  · 技术社区  · 7 年前

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

    用这些响应的托管支持可能是在中定义的CleanURL。htaccess文件我们无法对此提供支持。

    我认为干净的URL是可读的rest调用,但其意义可能比仅rest更大。但有没有解决办法?

    1 回复  |  直到 7 年前
        1
  •  1
  •   erickyi2006    7 年前

    更有可能的是,您没有在提供者中定义HashLocationStrategy(在app.module.ts中)

    此处更新。。我试着输入评论,但无法格式化

    有三种方法 第1路

    @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 使用路径定位策略

    import {APP_BASE_HREF} from '@angular/common';
    
    @NgModule({
    providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]
    })
    

    有优点也有缺点-我用了第二个,因为我来自安格拉1、2、4、5(老派):p