Ich versuche, eine grundlegende MEAN App zu laufen. Meine App funktioniert ohne den Angular-Teil. Aber wenn ich Angular einschließe, kann ich die HTML-Seite nicht sehen, die im "Ansicht" -Ordner ist.Kann meine HTML-Datei in Sicht nicht sehen
Das ist mein Server:
var express=require('express');
var path=require('path');
var bodyParser=require('body-parser');
var index=require('./routes/index');
var tasks=require('./routes/tasks');
var port=3000;
var app=express();
/*View engine*/
app.set('views',path.join(__dirname, 'views'));
app.set('view engine','ejs');
app.engine('html',require('ejs').renderFile);
/*View static folder*/
app.use(express.static(path.join(__dirname, 'client')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use('/',index);
app.use('/api',tasks);
app.listen(port, function(){
console.log('The application is running on port '+port);
});
Das ist mein Weg unter "Routen" Verzeichnis-Index:
var express=require('express');
var router=express.Router();
router.get('/',function(req, res, next){
res.render('index.html');
})
module.exports=router;
Mein Angular-Code wird in Client/app Verzeichnis lebt. Ich tippe npm start
, wenn ich in meinem myapp/client-Verzeichnis im Terminal bin. Ich bekomme "Kann nicht bekommen /" und im Terminal sehe ich "404 GET /index.html"
Irgendwelche Ideen?
Meine index.html ist unter myapp \ views \ und nicht in myapp \ views \ client und es ist immer noch nicht funktioniert :( –
@TuviaKhusid ok, so fügen Sie zusätzliche Route zu dienen '/ index.html' in der Tat Protokolle sagen, dass Sie versucht haben, auf die Datei zuzugreifen aus durchsuchen r wie folgt: 'http: // localhost: 3000/index.html' das wird natürlich nicht zugänglich sein, denn route '/ index.html' wird von expressjs router wie üblich route behandelt und natürlich wird da nicht erreichbar sein von statischen Middleware sieht 'Client'-Ordner – num8er
@TuviaKhusid überprüfen Sie meine letzte aktualisierte Antwort, hoffe, dass es Ihren Bedürfnissen entspricht – num8er