javascript - 将 CSS 添加到 EJS

标签 javascript node.js express ejs

使用 EJS 时链接 css 文件时遇到困难。 已经研究过other answer但不明白 这是我在 css 文件中引用的代码。

EJS

    <html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="index.css">
    <title></title>
  </head>
  <body>
    <header>
      <% include header %>
    </header>
</body>
</html>

css 文件与 ejs 文件位于同一目录(views 目录)中。这会导致任何问题吗? header 只是另一个带有一些静态 html 的 ejs 文件。

服务器:

const express = require("express");
const path = require('path');
const app = express();

app.set("views", path.resolve(__dirname, "views"));
app.set("view engine", "ejs");


app.use(express.static(__dirname + 'public'));

app.get('/', (req, res) => {
  res.render("index");
})

app.listen(3000);

我最终想将我的 css 文件移动到另一个文件夹中,但我真的想知道为什么这不起作用。由于这些文件位于同一文件夹中,我期望相对路径 <link rel="stylesheet" href="index.css">去工作。

最佳答案

您指定静态文件(css、图像等)位于“public”文件夹中:

app.use(express.static(__dirname + 'public'));

阅读:http://expressjs.com/en/starter/static-files.html

只需将您的 css 移至此文件夹即可;)

编辑:

您可以指定多个静态文件夹:

app.use("/public1", express.static(__dirname + "/public1"));
app.use("/public2", express.static(__dirname + "/public2"));

但是您可以在静态文件夹中添加文件夹:

  • /public1/css
  • /public1/lib

并像在您的 ejs 文件中一样使用它:

<link rel="stylesheet" href="/public1/css/index.css">

关于javascript - 将 CSS 添加到 EJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514564/

相关文章:

javascript - NodeJs : TypeError: require(. ..) 不是函数

javascript - Mongoose - 转换为 ObjectId 失败

node.js - 在同一个请求express node js中上传文件和JSON数据

javascript - 如何替换不是html标签的特定子字符串

javascript - 在加载事件中显示图像

node.js - Lightsail AWS Node.js 永远启动

node.js - 如何从静态后端路径在 Angular 中显示图像?

node.js - 如何将 socket.io 与 webpack-hot-middleware 一起使用?

javascript - three.js 的ExtrudeGeometry.UVGenerator.generateSideWallUV 中条件语句的作用是什么?

javascript - 无法将appendChild与Mustache渲染模板一起使用