Node.js css拒绝应用

iswrvxsc  于 2023-03-25  发布在  Node.js
关注(0)|答案(1)|浏览(92)

我正在构建一个非常简单的应用程序,当我遇到这个问题时,我正在设置项目。我有一个简单的localhost服务器和一个要渲染的html,但是当我访问localhost时,我在控制台上得到这个错误:Refused to apply style from 'http://localhost:8080/style.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
我检查了this其他答案,但不明白是什么问题,所以我不能解决我的。
我的项目结构如下:

Project
  js
    server.js
  views
    index.html
    style.css

这些文件包含以下代码:
server.js:

const express = require('express');
const dotenv = require('dotenv');
const path = require('path');

dotenv.config({ path: './../config.env' });
const app = express();

app.use(express.static(__dirname + '/views'));

const port = process.env.PORT || 8080;
app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname, '../views', 'index.html'));
});

app.listen(port, () => {
  console.log(`App running on port ${port}`);
});

index.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="/style.css" />
  </head>
  <body>
    <button class="btn"></button>
  </body>
</html>

style.css:

.btn {
  background-color: red;
}

所以,我希望这个按钮有一个红色的背景颜色,但却遇到了这个错误。任何帮助都是感激的!

jum4pzuy

jum4pzuy1#

您的问题只是发送到static的路径。
app.use(express.static(__dirname + '/views'));
__dirname将是js文件的路径,所以你在这里说的是/js/views/,但你真正想要的是向上一个目录,然后查看。
您可以使用与get('/'..相同的技术,使用path.join获取views目录。
例如

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

相关问题