首页 > 解决方案 > Heroku Node.js 应用程序拒绝应用样式,因为它的 MIME 类型

问题描述

我是 Node.js 和 Express 的新手。我从控制台收到这些错误。

拒绝应用来自“ https://brawlhallastats.herokuapp.com/assets/css/bootstrap.min.css ”的样式,因为它的 MIME 类型(“text/html”)不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查.

CSS 加载它应该在本地的方式,但是当我查看 Heroku 上部署的应用程序时,它只显示没有样式的纯 HTML。为什么是这样?我不知道为什么并且非常感谢一些帮助,因为我一直在寻求帮助并且找不到适用于我的直接答案。

我相信问题仍然存在于下面的代码中。作为参考,这是我的布局:

    C:/
        index.html
        server.js
        package.json
        .gitignore
        assets
            css
                all_the_css_files in here
        node_modules
    <link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
    <link href="assets/css/core.css" rel="stylesheet" type="text/css">
    <link href="assets/css/icons.css" rel="stylesheet" type="text/css">
    const express = require('express');
    const app = express();
    const path = require('path');

    app.get('/', function(req, res) {
        res.sendFile(path.join(__dirname, 'index.html'));
    });

    app.listen(process.env.PORT || 4000, function(){
        console.log('Your node js server is running');
    });

我希望网站能够正确加载所有样式。任何解释将不胜感激。

标签: javascriptnode.jsexpressheroku

解决方案


我想通了,我在这里写了简洁的答案,因为新表达的人可能也会遇到这个问题。

我遇到了这个问题,因为我需要设置一个公用文件夹。我所做的只是创建一个名为 public 的文件夹,将资产放入 public,然后将这一行包含到 server.js 文件中。

app.use(express.static(__dirname + '/public'))

推荐阅读