2017-06-19 74 views
0

Angular2 404頁刷新本地主機

// Angular module import 
 
import { NgModule } from '@angular/core' 
 
import { BrowserModule } from '@angular/platform-browser' 
 
import { RouterModule, Routes } from '@angular/router' 
 

 
import { NavComponent } from './nav/nav.component' 
 
import { siteComponents } from './components' 
 
import { loginForm } from './loginform/login.component' 
 
import { LoaderComponent } from './loader/loader.component' 
 

 
import { appRoutes } from './routes' 
 

 
@NgModule({ 
 
    imports: [BrowserModule, 
 
    RouterModule.forRoot(appRoutes) 
 
    ], 
 
     declarations: [ 
 
      siteComponents, 
 
      NavComponent, 
 
      loginForm, 
 
      LoaderComponent 
 
      ], 
 
     bootstrap: [siteComponents, LoaderComponent] 
 
}) 
 
export class AppModule {}

我有以下的代碼來實現路由我angular2應用。如果重定向到路由,那麼路由工作得很好,但是我刷新了404。我需要幫助讓路線進行更新。我正在使用http-server。

回答

0

與NG CLI印花布再次啓動應用程序,一切工作正常。

0

嘗試打開上forRoot哈希標誌如下:

RouterModule.forRoot(appRoutes, {useHash: true,}) 
0

每當你刷新設法擊中site.domain /實際路線,這顯然是不存在的瀏覽器。一種方式是Jota建議切換到散列導航。但是html5導航並不太難實現。

  1. 使用更加個性化的後端,如express.js

    var express = require('express'); 
    var path = require('path'); 
    var router = express.Router(); 
    
    router.use('/', express.static('app', { redirect: false })); 
        router.get('*', function (req, res, next) { 
        res.sendFile(path.resolve('app/index.html')); 
    }); 
    
    module.exports = router; 
    
  2. https://www.npmjs.com/package/angular-http-server一個嘗試
  3. 配置nginx的或Apache重定向到index.html的。 Apache的例子:

    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule . index.html [L] 
    
+0

好的尼克。謝謝。會嘗試。 –