You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Node.js+Express运行项目时CSS无法加载及MIME类型报错问题求解

问题原因

  • 你编写的Express代码中存在两个完全相同的GET /路由,Express的路由匹配逻辑是从上到下顺序执行,第一个匹配到的路由会直接返回index.html。当浏览器请求/style.css时,没有对应的路由规则处理该请求,最终返回的是HTML格式的响应内容,这就是控制台提示MIME类型为text/html的原因。
  • 你第二个路由的路径配置错误,要匹配CSS资源请求,路径应该设置为/style.css而非/。
  • 你贴出的服务端代码还遗漏了express模块的引入语句,直接执行会报错。

修复方案

方案1:使用express内置静态资源中间件(推荐)

直接用express.static托管项目根目录下的所有静态文件,不需要手动为每个静态资源编写路由,Express会自动处理MIME类型匹配,修改后的服务端代码如下:

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

// 托管当前目录下的所有静态资源,html、css、js等文件都可以被直接访问
app.use(express.static(__dirname));

app.listen(process.env.PORT || 8080, () => console.log('App available on http://localhost:8080'))

方案2:手动修正路由配置

如果你不想使用静态资源中间件,直接修改第二个路由的路径匹配规则即可:

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

app.get('/', (request, response) => {
    response.sendFile(path.join(__dirname, "index.html"))
});

// 修改路径为/style.css匹配CSS资源请求
app.get('/style.css', (request, responseC) => {
    responseC.sendFile(path.join(__dirname, "style.css"))
});

app.listen(process.env.PORT || 8080, () => console.log('App available on http://localhost:8080'))

内容的提问来源于stack exchange,提问作者BlitzDBS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:24:03