EJS include语句异常:局部视图内容被强制纳入body标签求助
这不是EJS的问题,是浏览器的HTML自动修正机制在起作用——你写的HTML结构不符合规范,浏览器会自动调整错误的标签位置。
问题根源
HTML5规范明确规定:<html>标签的直接子元素只能是<head>和<body>,<footer>这类元素不能直接放在<html>下面。浏览器解析到不符合规范的结构时,会自动把<footer>挪到<body>内部,保证页面结构合法。
你原index.ejs里把<footer>放在了<body>外面,这本身就违反了HTML规范,所以浏览器才会强制调整它的位置。
解决方案
把<footer>标签移到<body>内部即可,修正后的index.ejs代码如下:
<!DOCTYPE html> <html> <body> <p>Hello World!</p> <footer> <%- include("../partials/footer") %> </footer> </body> </html>
效果说明
修正后,浏览器会保留<footer>在<body>内的正确位置,局部视图的内容也会正常渲染在<footer>标签里,不会再被强制移动。
内容的提问来源于stack exchange,提问作者iKingNinja
相关产品推荐
相关产品推荐

