gpt4 book ai didi

javascript - Express.js 找不到样式表

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:38 26 4
gpt4 key购买 nike

我正在开发一个使用 MEAN 堆栈的应用程序,但我无法让我的主索引页面获取我的样式表。运行 node server 工作正常,正在呈现 index.html 页面,并且没有控制台错误。命中 http://localhost:3000/public/css/app.css按预期返回 CSS。所以文件在那里并且可以访问,但是样式没有应用到索引页面。

知道发生了什么吗?

./server.js

var config = require('./server/config/environment');
var express = require('./server/config/express');

var app = express();

app.listen(config.port, function() {
console.log('Server is listening on port %d', config.port);
});

exports = module.exports = app;

./server/config/express.js

var express = require('express');
var path = require('path');

module.exports = function() {
var app = express();

app.set('view engine', 'ejs');
require('../server.routes.js')(app);
app.use("/public/css", express.static(path.resolve('public/css')));
app.get('/public/css/app.css', function(request, response) {
response.sendFile(path.resolve('public/css/app.css'));
});

return app;
};

./server/server.routes.js

module.exports = function(app) {
app.get('/', require('./server.controller').render);
};

./server/server.controller.js

module.exports.render = function(request, response) {
response.render('index');
};

./views/index.ejs

<head>
<base href="/">
<link rel="stylesheet" src="/public/css/app.css">
</head>

./public/css/app.css

body {
margin: 70px 20px 20px 20px;
}

最佳答案

试试这个

./views/index.ejs

<head>
<base href="/">
<link rel="stylesheet" href="/css/app.css">
</head>

./server/config/express.js

var express = require('express');
var path = require('path');

module.exports = function() {
var app = express();

app.set('view engine', 'ejs');
require('../server.routes.js')(app);
app.use(express.static(path.resolve(__dirname, 'public')));

return app;
};

当您使用 express.static() 时您正在将其注册为公用文件夹,这意味着客户端实际上不需要知道文件夹的名称。本质上你所做的就是调用

<head>
<base href="/">
<link rel="stylesheet" href="/public/css/public/css/app.css">
</head>

一般人注册一个base文件夹,然后把css放在css/子文件夹,js放在js/子文件夹

编辑:@HydraHorn 自己意识到他正在使用 <link src="...">而不是 <link href="..."> .也就是说,如果不对 express.static() 进行更改,它仍然无法正常工作。 .我已进行上述更改,以免混淆 future 的访问者

关于javascript - Express.js 找不到样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36510609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com