2016-01-19 7 views
5

Attualmente sto eseguendo Angular 2 su un server con http-server utilizzando il seguente comando: http-server ./ index.html.come eseguire angular 2 in un ambiente di produzione

Questo serve la multa angolare. Link facendo clic su funziona. Anche se inserisco lo url con uno /route-name direttamente come in url.com/route-name. L'app si arresta in modo anomalo.

Stavo usando lite-server ma i documenti lite-server raccomandati per usarlo solo in fase di sviluppo. Quando si utilizza lite-server, posso immettere direttamente un url con un route e funziona correttamente.

Come è possibile configurare http-server per poter immettere un indirizzo URL con una route di pagina o qual è un altro buon modo per eseguire angular 2 in un ambiente di produzione?

+3

È necessario il server per reindirizzare gli URL che non corrispondono a un file esistente a index.html in modo angolare può trattarli come percorsi, se 'http-serve r' non ha questa opzione probabilmente hai bisogno di trovare un altro server – mzulch

risposta

0

Come ha detto mzulch, è necessario un server in grado di reindirizzare l'URL non trovato in index.html. Non riesci a caricare un url perché il router angolare non viene caricato quando inserisci questo URL. Quindi non può intercettare le richieste e il browser visualizza un errore 404 non trovato. lite-server è un server perfetto da testare durante lo sviluppo.

Nella produzione, è possibile configurare un server nginx per reindirizzare tutte le 404 richieste a index.html e poi è la responsabilità del proprio router angolare per gestire reale 404

Nella configurazione nginx è possibile definire questo genere:

server { 
    error_page 404 =200 /index.html 
    # other conf 
} 

Questo reindirizzerà tutto 404 errore al index.html e trasformare il codice di errore 404 a 200.