将标记添加到索引文件中断表达路由

时间:2016-08-07 13:32:35

标签: html express angular

我有一个完全准系统的快速应用程序,app.js带有这样的html呈现引擎:

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

我希望index.html能够托管一个Angular2单页应用。在我的./views目录中,我有一个index.html和一个error.html文件。我的index.html文件如下所示:

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

有了这个设置,一切正常。但是,如果我在头部添加任何内容,例如

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

然后,而不是localhost解析索引我现在得到错误页面。为什么呢?

1 个答案:

答案 0 :(得分:0)

这是无效的HTML。您不能<h1><my-app>作为<head>的兄弟姐妹。将内容移至<body>标记。

事件虽然浏览器可能会自动添加<body>但不好的做法并且Angular不喜欢无效的HTML。 Angulars HTML解析器是严格的,如果提供的HTML无效,则会抛出错误(对于组件模板中的HTML)。

我不确定这是否是您问题的根本原因,但我认为在此问题尚未解决之前进行更多调查是非常有意义的。

<head>代码可能需要<base href="/">作为第一个子元素(如果未提供APP_BASE_HREF)。