2017-06-13 13 views
6

Açısal CLI ile oluşturulan Angular uygulamasını başlatmaya çalışıyorum, ancak varsayılan app-root bileşeninin yüklenmemesi gibi görünüyor. Açısal uygulama ile hızlı sunucu arasındaki bağlantı için proxy kullanıyorum ve aynı anda iki komut dosyası çalıştırıyorum: Açma/node.js başlangıç ​​için node bin/www ve Açısal ve proxy bağlantısı oluşturmak için ng serve --proxy-config proxy.config.json böyle görünüyor (package.json parçası):Neden Angular 2 varsayılan uygulama kökü bileşenini yüklemiyor?

"scripts": { 
    "start": "concurrently --kill-others \"node bin/www\" \"ng serve --proxy-config proxy.config.json\"" 
} 

indeks sayfası yüklendiğinde ince ama app-root bileşen (açısal CLI ng new oluşturuldu varsayılan bileşeni) yüklenirken etmediğini görünüyor: enter image description here İşte benim node.js/ifade use s ve bir yol:

var express = require('express'); 
var router = express.Router(); 
var app = express(); 
var path = require('path'); 

app.use(express.static('./src/client/')); 
app.use(express.static('./')); 
app.use(express.static('./tmp')); 
app.use('/*', express.static(path.resolve('src/client/index.html'))); 

router.get('*', function(req, res) { 
    res.sendFile(path.resolve('src/client/index.html')); 
}); 

module.exports = router; 

Ve Projemin yapı (gerekirse): enter image description here

Ne kaçırdım? Neden varsayılan app-root bileşeni yüklenmiyor? (Gerekirse, ng serve'u çalıştırdığımda, gerektiğinde açısal ana sayfayı başlatır ve bileşen tamamdır, bu yüzden sorunun açık bir yerde olduğunu düşünüyorum).

Şimdiden teşekkürler

+0

ve ekspres sunumuyla yinelenmektedir Yani, böyle bir şey olurdu. Öyle olsa bile, src klasöründen değil, yapı klasöründen sunum yaparsınız. –

+0

@TaylorAckley, varsayılan olarak "dist" adlı oluşturma klasörünü yalnızca ifade etmeyi ve kullanmaya çalışmayı denedim, ancak yine de aynı soruna (ancak şimdi tüm komut dosyaları yüklendi) sahip olmaya çalıştım. –

+0

@Ced, burada aldığım 'index.html ': https://ibb.co/czJe2k ve ağ sekmem: https://ibb.co/hE3Jv5 –

cevap

5

Sen dist/ klasörün after calling ng build --prod (the --prod is important, as the default is --dev) içeriğini hizmet etmelidir.

"scripts": { 
    "start": "ng build --prod && node bin/www" 
} 

Ve az ya da çok sizin açık senaryoyu uyarlayan: `Ng Serve` kullanma

app.use(express.static('./dist')); 
app.use('/*', express.static(path.resolve('dist/index.html'))); 

router.get('*', function(req, res) { 
    res.sendFile(path.resolve('dist/index.html')); 
}); 
+0

Öneriniz iyi görünüyor, ancak kullanmaya çalıştım Şimdi ve 404 hatası alıyorum. Belki bir yere heceledin ya da cevabına bir şey eklemeyi unuttun mu? Bence önerin çok yakın. Evet, –

+0

no'lu node/express için tamamen yeni olduğumu söylemeliyim, evet, 'index.html' eklemeyi unuttum. Eğer işe yararsa beni bilgilendir. – acdcjunior

+0

Denedim, scripts ile index.html iyi yükler, ancak hala boş bir 'app-root' elemanı alıyorum. Ancak yapı sonucum ('dist' klasörü) sadece' client/index.html' ve beş '... bundle.js' dosyalarını içerir. Hepsi "index.html" dosyasına dahil edildi, ancak bunlardan birini yeni sekmede açmaya çalışırken, beklendiği gibi herhangi bir kod göremiyorum. Gerçekten dahil olmadıkları gibi görünüyor. Sanırım, bu başka bir problem, ama bunun hakkında herhangi bir fikriniz varsa lütfen bana –