【问题标题】:node.js express can't understand path to css filesnode.js express 无法理解 css 文件的路径
【发布时间】:2020-04-30 15:46:38
【问题描述】:

我正在尝试在 express 的帮助下使用 node.js 在 html 页面上加载一些信息。

问题是当我想打开主页时(它显示数据库中的所有书籍),一切正常 - 找到 css 和 js 文件并将其应用于页面。但是当我加载另一个页面(它显示单本书)时,加载了唯一的页面(我的意思是没有任何 css)。另外,这两个页面在同一个文件夹中。

我已经包含了具有这样样式的文件夹(在 server.js 文件中):

app.use(express.static(path.join(__dirname, '/style')));

那段代码运行良好:

app.get("/", function(req, res){
    pool.query("SELECT * FROM books", function(err, rows) {
      if(err) return console.log(err);
      res.render("../front/index.hbs", {
        books: rows
      });
    });
});

但是当我尝试加载这件作品时 - 没有应用 css:

app.get("/single-product/:id/", function(req, res){
  const id = req.params.id;
  pool.query("SELECT * FROM books WHERE idBook=?", [id], function(err, rows) {
     if(err) return console.log(err);
     res.render("../front/single-product.hbs", {
        books: rows[0]
    });
  });
});  

两个文件中的 css 包含如下:

    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/plugins.css">
    <link rel="stylesheet" href="css/style.css">

    <!-- Cusom css -->
    <link rel="stylesheet" href="css/custom.css">

当我打开 devtools 时,第一种方式显示 200 响应代码,第二种方式显示 404。可能是什么问题?

【问题讨论】:

标签: javascript css node.js express http


【解决方案1】:

如果您将这些 css 文件与 api-routes 分开,则需要在 html-routes 中提供这些文件,或者如果将它们放在一起,则只需将它们添加到您的常规服务器。

【讨论】:

    【解决方案2】:

    修改:将'server'添加到app.use(express.static(path.join(__dirname, 'server', '/style')));

    【讨论】:

    • 哦,我忘了说,两个文件(正常显示的和第二个)都在同一个文件夹中。
    • 哦,好吧,我之前遇到过这个问题,所以这通常是我的第一次检查——为了快速修复!哈哈
    • 如果你的 CSS 文件嵌套了一点,你必须将它添加到 path.join,所以我的“服务器”甚至可能不够低,你可能需要添加另一个级别, 也。希望有帮助!
    猜你喜欢
    • 1970-01-01
    • 2012-07-07
    • 2015-05-11
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    相关资源
    最近更新 更多