2017-06-13 8 views
6

मैं कोणीय सीएलआई के माध्यम से उत्पन्न कोणीय ऐप शुरू करने की कोशिश कर रहा हूं, लेकिन ऐसा लगता है कि डिफ़ॉल्ट app-root घटक लोड नहीं होता है। कहने की ज़रूरत है कि मैं कोणीय ऐप और एक्सप्रेस सर्वर के बीच कनेक्शन के लिए प्रॉक्सी का उपयोग कर रहा हूं, और मैं एक ही समय में दो स्क्रिप्ट चला रहा हूं: node bin/www एक्सप्रेस/node.js के लिए प्रारंभ करें और ng serve --proxy-config proxy.config.json कोणीय प्रारंभ करने और प्रॉक्सी कनेक्शन बनाने के लिए, यह (package.json का हिस्सा) इस तरह दिखता है: ठीकक्यों कोणीय 2 डिफ़ॉल्ट ऐप-रूट घटक लोड नहीं करता है?

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

सूचकांक पृष्ठ लोड है, लेकिन यह है कि app-root घटक (डिफ़ॉल्ट घटक, कोणीय CLI ng new से बनाया गया था जो) लोड हो रहा है नहीं करता है लगता है: enter image description here यहां मेरा नोड.जेएस/एक्सप्रेस use एस और एक मार्ग है:

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; 

और मेरी परियोजना की संरचना (की जरूरत है जहां): enter image description here

मैं क्या याद किया? डिफ़ॉल्ट app-root घटक क्यों लोड नहीं हो रहा है? (कहने की जरूरत है, जब मैं ng serve चलाता हूं, यह आवश्यकतानुसार कोणीय मुखपृष्ठ शुरू करता है और घटक ठीक है, इसलिए मुझे लगता है कि समस्या कहीं भी व्यक्त है)।

अग्रिम धन्यवाद

+0

का उपयोग करते हुए 'एनजी Serve' और एक्सप्रेस से की सेवा किसी दोहराव कर रहे हैं तो, यह कुछ इस तरह होगा। फिर भी, आप निर्माण फ़ोल्डर से सेवा करेंगे, न कि src फ़ोल्डर। –

+0

@ टेलरएक्ले, मैंने डिफ़ॉल्ट रूप से केवल "dist" नामक बिल्ड फ़ोल्डर का उपयोग करने और उपयोग करने की कोशिश की है, लेकिन फिर भी एक ही समस्या है (लेकिन अब सभी स्क्रिप्ट लोड हो चुकी हैं)। –

+0

@Ced, यहां मेरा प्राप्त 'index.html' है: https://ibb.co/czJe2k, और मेरा नेटवर्क टैब: https://ibb.co/hE3Jv5 –

उत्तर

5

में आप dist/ फ़ोल्डर after calling ng build --prod (the --prod is important, as the default is --dev) की सामग्री को कार्य करना चाहिए।

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

और, कम या ज्यादा अपने एक्सप्रेस स्क्रिप्ट अनुकूल:

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

आपका सुझाव ठीक दिखता है, लेकिन मैंने उपयोग करने का प्रयास किया है यह और अब मुझे 404 त्रुटि मिल रही है। हो सकता है कि आपने कहीं गलत वर्तनी की हो या अपने जवाब में कुछ शामिल करना भूल गए? मुझे लगता है, आपका सुझाव बहुत करीब है। कहने की ज़रूरत है कि मैं –

+0

को नोड/एक्सप्रेस करने के लिए बिल्कुल नया हूं ओह, हाँ, मैं 'index.html' जोड़ना भूल गया। अगर यह काम करता है तो मुझे बताएं। – acdcjunior

+0

मैंने कोशिश की है, स्क्रिप्ट के साथ index.html ठीक लोड करता है, लेकिन मुझे अभी भी खाली 'ऐप-रूट' तत्व मिल रहा है। लेकिन मेरे निर्माण परिणाम ('dist' फ़ोल्डर) में केवल 'क्लाइंट/index.html' और पांच' ... bundle.js' फ़ाइलें हैं। उनमें से सभी को 'index.html' में शामिल किया गया है, लेकिन जब मैं उनमें से एक को नए टैब में खोलने की कोशिश करता हूं, तो मुझे अपेक्षित कोई कोड नहीं दिखता है। ऐसा लगता है कि वे वास्तव में शामिल नहीं थे। मुझे लगता है, यह एक और समस्या है, लेकिन अगर आपके पास इसके बारे में कोई विचार है, तो कृपया मुझे –

संबंधित मुद्दे