我创建了一个超级简单的 express 应用程序,它将从视图目录中显示一个 home.html 视图。home.html
显示一切正常,但我没有添加任何 css 样式。在控制台中,我只收到一个错误:
我试图用我发现的堆栈中的另一个答案来解决我的问题:
app.use(express.static(path.join(__dirname, 'public')))
app.use(express.static(path.join(__dirname + '/public')))
好的,你可以看到我的目录结构是什么样的
正如你所看到的,我创建了公共文件夹,在这个文件夹中我保留了我的 css 样式,所以在 url 下:http://localhost:8080/public/css/style.css
我应该看到我的 css 样式但我只能看到错误
但同时在这个 url 下http://localhost:8080/css/style.css
我可以找到我的 css 文件
我真的很困惑,我不知道我做错了什么。如果你们中的任何人帮助我,我会很高兴。
应用程序.js
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const flash = require('connect-flash');
const routes = require('./routes/index');
const app = express();
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(flash());
app.use('/', routes);
module.exports = app;
服务器.js
const app = require('./app');
app.set('port', process.env.PORT || 8080);
const server = app.listen(app.get('port'), () => {
console.log(`Server is up on ${server.address().port}`);
});
主页.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="/public/css/style.css">
<title>Express</title>
</head>
<body>
<h1>Express</h1>
</body>
</html>
样式文件
body {
background: #f6f6f6;
}
h1 {
color: green;
}
好的,所以我在快速服务器配置方面犯了错误。而不是像这样提供静态文件
app.use(express.static(path.join(__dirname, 'public')));
app.use('/public', express.static(path.join(__dirname, 'public')));
发生这种情况是因为 /public 目录是在根 url 下提供的
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句