由于 MIME 类型不匹配,资源被阻止

问题描述 投票:0回答:1

我的 CSS 和 Javascript 文件的

all
都出现了 The resource from “[URL and name of file]” was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 错误。

我当前的设置是一个使用 Express 和 Express-Handlebars 进行路由和模板的 Node.js 服务器。我确信问题在于我的文件路由,这些文件会请求处理

/movies/:id
/search/query:
等路由。我通过在我的
main.hbs
文件(默认主模板)中创建两个指向 CSS 和 Javascript 文件的链接解决了这个问题,一个链接来自
/
,另一个链接来自
/something/something
。我知道这种做法很糟糕。但到目前为止,它有效。

但这就是为什么我寻求帮助来一劳永逸地解决 MIME 类型不匹配错误。因为当我将其上传到我的 Digital Ocean 服务器时,它根本无法工作。我不知道如何解决它。

我的文件结构如下:

/
    views/
        css/
        js/
        layouts/
            main.hbs
    index.js

在index.js中,我有设置把手的代码和一些管理CSS和Javascript文件的代码。

app.engine('.hbs', exphbs({
    defaultLayout: 'main',
    extname: '.hbs',
    layoutDir: path.join(__dirname, 'views/layouts')
}));

app.set('view engine', '.hbs');
app.set('views', path.join(__dirname, 'views'));
app.use(express.static(__dirname + '/views'));

路线的示例是

app.get('/search/:query', (request, response) => {
    // Code goes here
});

我真的不知道该做什么。我感觉我已经走遍了互联网的各个角落,但我找不到任何解决我的问题的方法。

如有任何帮助,我们将不胜感激。

javascript node.js express handlebars.js
1个回答
0
投票

这与点有关。我有同样的问题。我发现我的所有文件都是 filename.min.js 的形式。所以我删除了第一个点并将文件名更改为 filenamemin.js 并且它起作用了。也许express会读取第一个点之后的所有内容作为文件扩展名。

© www.soinside.com 2019 - 2024. All rights reserved.