我有一个完全准系统的快速应用程序,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
解析索引我现在得到错误页面。为什么呢?
答案 0 :(得分:0)
这是无效的HTML。您不能<h1>
或<my-app>
作为<head>
的兄弟姐妹。将内容移至<body>
标记。
事件虽然浏览器可能会自动添加<body>
但不好的做法并且Angular不喜欢无效的HTML。 Angulars HTML解析器是严格的,如果提供的HTML无效,则会抛出错误(对于组件模板中的HTML)。
我不确定这是否是您问题的根本原因,但我认为在此问题尚未解决之前进行更多调查是非常有意义的。
<head>
代码可能需要<base href="/">
作为第一个子元素(如果未提供APP_BASE_HREF
)。