2016-08-07 8 views
0

ich eine völlig Barebone Express App haben, mit einem app.js mit einem HTML-Rendering-Engine wie folgt aus:<head> Tags Indexdatei bricht das Hinzufügen express Routing

app.set('views', path.join(__dirname, '/views')); 
app.engine('html', require('jade').renderFile); 
app.set('view engine', 'html'); 

Ich möchte index.html eine Angular2 einer Seite hosten App In meinem ./views Verzeichnis habe ich eine index.html und eine error.html Datei. Meine index.html Datei sieht so aus:

<head></head> 
<h1>Home</h1> 
<my-app>Loading...</my-app> 

Mit dieser Einrichtung funktioniert alles gut. Wenn ich jedoch etwas zu dem Kopfabschnitt hinzufüge, z.

<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
</head> 
<h1>Home</h1> 
<my-app>Loading...</my-app> 

Dann anstatt localhost Lösung zu indizieren bekomme ich jetzt die Fehlerseite. Warum?

Antwort

0

Dies ist ungültiges HTML. Sie können nicht <h1> oder <my-app> als Geschwister zu <head> haben. Verschieben Sie den Inhalt in ein <body>-Tag.

Event, obwohl der Browser <body> automatisch hinzufügen, ist es schlechte Praxis und Angular mag ungültiges HTML nicht. Angulars HTML-Parser ist streng und wenn der angegebene HTML-Code nicht gültig ist, wird ein Fehler ausgegeben (für HTML in Komponentenvorlagen).

Ich bin mir nicht sicher, das ist die Ursache für Ihr Problem, aber ich denke nicht, dass es viel Sinn macht, mehr zu untersuchen, bevor dies nicht behoben wird.

Der Tag <head> benötigt möglicherweise ein <base href="/"> als erstes untergeordnetes Element (wenn APP_BASE_HREF nicht angegeben ist).

Verwandte Themen