2

我正在使用 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');
});

这就是我在主布局上格式化网址的方式:

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

assets 文件夹位于 views 文件夹的根目录中。我怎样才能解决这个问题?

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

在此处输入图像描述

4

2 回答 2

4

改变你的静态路径。

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

href此外,更改html文件

<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
于 2017-01-12T03:49:44.133 回答
1

如果以下是您的静态文件夹,正如您指定的那样

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

并且预期的 css 文件是bootstrap.min.css;出现在公用文件夹的根目录中,然后在 * .handlebar内部,下面将是您的 css 文件的路径

<link rel="stylesheet" type="text/css" href="./bootstrap.min.css" />
于 2020-08-20T03:18:58.737 回答