2016-06-01 9 views
10

(sono nuovo sul pianeta Angular2 (emigrato dalla morte pianeta
Flex/ActionScript, quindi ti prego di perdonare questa domanda ingenua)
angular-cli "ng build" non produce un progetto di lavoro?

Avere ho commesso un errore fatale nel pensare che dopo l'esecuzione del "ng accumulo" comando sul mio progetto da Angular CLi, mi ritroverei con un progetto funzionante nella directory "dist" - che potrei semplicemente eseguire in un browser, montare su un server?

Finisco con una cartella piena di correttamente roba con nome, ecc. C'è un passaggio che mi manca qui?

enter image description here

+1

Non stai fraintendendo. Dovresti essere in grado di scaricare i contenuti della cartella 'dist' nel tuo server web di scelta e avere un sito funzionante. –

+0

Se si vuole far ruotare il server di sviluppo per eseguire localmente il sito, si dovrebbe usare 'ng serve' invece di' ng build'. –

+0

Non ho visto tutto in 'index.html', ma suppongo che non verrà caricato correttamente semplicemente dal filesystem, quindi sì, avrete bisogno di un server per l'applicazione di produzione. –

risposta

35

Sono nuovo di angolare, e appena incontrato lo stesso problema. È possibile aprire ed eseguire il file index.html nel browser direttamente dal file system, ma è necessario modificare il percorso del href base in Index.HTML da:

<base href="/"> 

a:

<base href="./"> 
+1

È necessario conservarlo o eliminarlo quando si esegue la distribuzione su un server reale? Probabilmente dovrebbe essere notato al team ang angular 2 – realtebo

+0

Potrebbe essere che questo "bug" sia presente solo su un sistema Linux? Sto solo cercando di risolvere il problema. – Blauhirn

+0

Ultimo sistema macOSsierra in questo momento. Questo problema è stato risolto per me in localhost: 4200 e server di produzione live (Apache). Questa risposta ha concluso la mia lunghissima ricerca. Grazie!!! Anche @realtebo sono completamente d'accordo che questo dovrebbe essere portato alla squadra di angular-cli dev! – totallytotallyamazing

0

È necessario eseguire questo nel CLI:

# This will create a production version in "dist" folder 
ng build -prod 

# This will create a production version in a custom folder 
ng build -prod --output-path=custom 
4

Ho pensato di incrociare la mia risposta su una domanda simile. Original Post.
Non penso che l'OP sia un duplicato, quindi qui;


è possibile ottenere il risultato desiderato con il seguente comando cmd angolare-cli:

ng build --base-href /myUrl/

ng build --bh /myUrl/ o ng build --prod --bh /myUrl/

Questo cambia la <base href="/"> al <base href="/myUrl/"> nella versione generata solo che era perfetto per il nostro cambiamento di ambiente tra sviluppo e produzione. La parte migliore non era che la base di codice richiedesse di cambiare usando questo metodo.


Per riassumere, lasciare il numero index.html come: <base href="/"> quindi eseguire ng build --bh ./ in angular-cli per renderlo un percorso relativo o sostituire lo ./ con qualsiasi cosa si richieda.

This è la documentazione ufficiale angular-cli che fa riferimento all'utilizzo.

Problemi correlati