为什么我的样式表会应用于我的所有ejs文件?

时间:2019-05-03 10:49:05

标签: html css node.js express ejs

我正在使用Express,MongoDB和EJS模板视图引擎创建一个nodeJS应用程序。我已经创建了用于创建服务器的server.js文件。我创建了一个单独的header.ejs文件,该文件将包含在我的其他ejs文件中(例如index.ejs,about.ejs,contact..ejs等)。但是,当我仅为header.ejs文件创建样式表时,样式将应用于所有ejs文件(index.ejs,about.ejs等) 我已将header.ejs文件放置在./public/partials/文件夹中,样式表位于./public/assets/文件夹中,而index.ejs文件位于./views/文件夹中。

我在server.js文件中使用了app.use(express.static(__ dirname +“ / public”)),在index.ejs中使用了/assets/style.css,在header.ejs中使用了/assets/header.css文件。

  

Server.js

app.set('view engine' ,  'ejs');
app.use(express.static(__dirname + "/public"));
app.use(employeeController);
  

employeeController.js

router.get('/employee' , function(req, res){
    res.render("index");
});

module.exports =路由器;

  

header.ejs

<link rel="stylesheet" href="assets/header.css">
<h2>Company Logo</h2>
  

index.ejs

 <link rel="stylesheet" href="/assets/style.css">
 <% include ../public/partials/header.ejs %>
  <h2>Please Enter the New Employee Information</h2>

当我将h2 {color:indianred;}放在header.css文件中时,即使header.css仅链接到header.ejs,即使index.ejs文件中的颜色也改变了。

我只希望header.ejs的更改。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

当您将header.ejs包含在index.ejs中时,css也将被添加。这就是您遇到此问题的原因。

要解决此问题,请在class上添加id / h2

<h2 class="h2_css">Company Logo</h2>

<h2 id="h2_css">Company Logo</h2>

现在像这样添加您的css

h2.h2_css {color: indianred;} 

h2#h2_css {color: indianred;}