css 个文件未使用 express-handlebars 找到

css files not found using express-handlebars

我正在使用 express-handlebars 呈现一些 html 页面。浏览器找不到我链接到的 css 文件。 这是我的服务器文件的样子:

const express = require('express');
const exphbs = require('express-handlebars');
const path = require('path');
const _ = require('lodash');
const bodyParser = require('body-parser');
const socketIO = require('socket.io');
const http = require('http');
var static = require('node-static');

var {mongoose} = require('./db/mongoose.js');

var {User} = require('./models/user');

const publicPath = path.join(__dirname, '../public');
var app = express();
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
var server = http.createServer(app);
var io = socketIO(server);
const port = process.env.PORT || 3000;

app.use('/', express.static(publicPath));
app.use(bodyParser.json());

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

这就是我在主布局上设置 url 格式的方式:

<link rel="stylesheet" href="views/assets/bootstrap/css/bootstrap.min.css">

资产文件夹位于视图文件夹的根目录中。我该如何解决这个问题?

编辑:这是我的目录结构。

更改您的静态路径。

const publicPath = path.join(__dirname, '../views');

此外,更改 html 文件中的 href

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

如果以下是您的 static 文件夹,如您指定的那样表示

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

预期的 css 文件是 bootstrap.min.css ;存在于 public 文件夹内的根目录下,然后在 *.handlebar 内,以下是您的 css 文件[=的路径12=]

<link rel="stylesheet" type="text/css" href="./bootstrap.min.css" />