【问题标题】:Express sending assets with wrong MIME type快速发送 MIME 类型错误的资产
【发布时间】:2017-12-07 05:36:51
【问题描述】:

使用 Express 为 Vue.js webpack 应用程序提供服务,部署后我收到以下错误: 我为应用程序提供服务的代码是这里的问题吗?

app.use(helmet())

app.use(express.static(path.resolve(__dirname, '../client/dist/static')));

app.all('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, '../client/dist', 'index.html'));
})

否则express.static 不应该自动将内容类型分配给静态文件吗?

【问题讨论】:

    标签: javascript node.js express webpack vue.js


    【解决方案1】:

    是的,这里有同样的问题。

    我现在使用ecstatic(仍然使用快递)。我不确定这是否是解决方案(我不在使错误成为可能的机器上)。

    明天将在“错误”机器上尝试。

    const express = require('express');
    const ecstatic = require('ecstatic');
    const http = require('http');
    
    const app = express();
    
    app.use(ecstatic({
      root: `${__dirname}/public`,
      showdir: false,
    }));
    
    http.createServer(app).listen(8080);
    
    console.log('See if its cool on -> :8080');
    

    【讨论】:

      【解决方案2】:

      404 Not Found 中的响应状态时,您也会收到此消息,因此请仔细检查文件是否确实存在于网络选项卡中。

      网络标签:

      控制台标签:

      在此处查看类似问题:https://stackoverflow.com/a/48792698/258772

      【讨论】:

        【解决方案3】:

        由于某种原因,现在不得不指定一个挂载路径:

        app.use('/static', express.static(path.resolve(__dirname, '../client/dist/static')));
        

        【讨论】:

        • 我遇到了同样的问题。清除 npm cache 没有帮助,也没有重新安装所有 node_modules - 但给它一个安装路径。非常感谢分享!
        • 如果我想将静态文件托管在应用程序的根目录下怎么办:(
        猜你喜欢
        • 1970-01-01
        • 2013-08-29
        • 1970-01-01
        • 2014-07-29
        • 2015-08-02
        • 2011-05-30
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多