Node.js Express项目本地CSS加载失败报MIME类型为text/html问题求助
问题根源
你配置的express.static静态资源中间件已经将项目下的public目录直接映射到服务的根路由,请求静态资源时不需要额外加/public路径前缀。
你当前在link标签中写的资源路径为/public/stylesheets/style.css,Express会尝试查找public/public/stylesheets/style.css文件,该路径不存在时会返回404的HTML响应,所以浏览器收到的MIME类型是text/html,触发报错。
修复步骤
- 打开
boilerplate.ejs文件,替换原本地CSS的link标签代码:
原来的错误代码:
<link rel="stylesheet" type="text/css" href="/public/stylesheets/style.css">
修改为:
<link rel="stylesheet" type="text/css" href="/stylesheets/style.css">
- 确认本地文件层级正确,
style.css文件的实际存放路径为项目根目录/public/stylesheets/style.css - 重启Express服务后刷新页面即可生效
补充说明
express.static的作用是将指定文件夹下的资源直接对外暴露,你配置的app.use(express.static(path.join(__dirname, './public')))已经将public文件夹作为静态资源根目录,所有静态资源的请求路径直接写public文件夹下的相对路径即可。
内容的提问来源于stack exchange,提问作者codingknack
相关产品推荐
相关产品推荐

