Heroku Node.js应用程序拒绝应用样式,因为其MIME类型

时间:2019-07-11 03:15:33

标签: javascript node.js express heroku

我是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');
    });

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

对我来说,解决方案是, 而不是:

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

我用过:

app.use(express.static(__dirname));

现在一切正常