如何使用Express服务器的CSS文件?

时间:2019-02-12 13:23:40

标签: node.js express

我已经看到很多类似的问题,但我似乎无济于事。无法提供css文件。我不断收到以下错误。

  

拒绝应用以下样式   “ http://localhost:7000/public/css/styles.css”,因为它的MIME类型   ('text / html')不是受支持的样式表MIME类型,也不是严格的MIME   检查已启用。

     

launch-analytics.js:4未捕获的TypeError:无法读取属性   未定义的“ parentNode”       在launch-analytics.js:4       在launch-analytics.js:5(匿名)@ launch-analytics.js:4(匿名)@ launch-analytics.js:5

我的index.ejs文件(路径:用户/节点/视图/index.ejs)

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <link rel="stylesheet" href="public/css/styles.css" type="text/css">
    <body>
        <p>I am the home page</p>
    </body>
</html>

app.js文件:(路径:用户/节点)

let express = require('express');
let bodyParser = require('body-parser');

let app = express();

let urlencodedParser = bodyParser.urlencoded({ extended: false })


app.set('view engine', 'ejs');

app.use(express.static('/public'));

app.get('/', function(req,res){
    res.render('index');
});

app.listen(7000);

styles.css文件:

body{
    background-color: skyblue;
    font-family: verdana;
    color: white;
    padding: 30px;
}
h2{
    font-size: 49px;
    text-transform: uppercase;
    letter-spacing:2px;
    text-align: center;
}
p{
    font-size: 16px;
    text-align: center;
}
.text-field{
    display: flex;
    justify-content: center;
}

2 个答案:

答案 0 :(得分:3)

似乎app.use(express.static('/public'));指向相对于根目录的目录。将其更改为app.use(express.static(__dirname + '/public'));

答案 1 :(得分:1)

尝试更改

app.use(express.static("/public"));

对此

app.use(express.static(__dirname + "/public"));

也在这里回答:Express-js can't GET my static files, why?