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

x6492ojm  于 2023-03-01  发布在  Node.js
关注(0)|答案(1)|浏览(227)

我一直得到这个错误的The resource from “[URL and name of file]” was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).为 * 所有 * 我的CSS和Javascript文件。
我目前的设置是一个node.js服务器,使用Express和Express-Handlebars进行路由和模板。我确信这个问题是由于我的文件路由,它会有处理/movies/:id/search/query:等路由的请求。我在main.hbs文件中创建了两个到CSS和Javascript文件的链接,从而修复了这个问题(默认的主模板),一个有/的链接,另一个有/something/something的链接。我知道这是很糟糕的做法。但到目前为止,它起作用了。
但这就是为什么我请求帮助一劳永逸地解决MIME类型不匹配的错误。因为当我把它上传到我的数字海洋服务器时,它根本不起作用。而且我不知道如何修复它。
我的文件结构如下:

/
    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
});

我真的被困在做什么。我觉得我已经到了互联网的各个角落,我找不到任何解决我的问题。
任何帮助都将不胜感激。

eeq64g8w

eeq64g8w1#

这和圆点有关,我也遇到过同样的问题,我发现我所有的文件都是filename.min.js格式,所以我去掉了第一个圆点,把文件名改为filenamin.js,这样就成功了,也许express把第一个圆点后面的所有东西都读作文件扩展名。

相关问题