我正在尝试使用manifest.json文件,如果类型未设置为application / json,该文件将无法工作。
我有一台运行node / express的nginx服务器。
我将manifest.json放在我的公用文件夹中,服务器将其读取为text / plain类型,并引发错误。
在/etc/nginx/config/
下,已经有一行显示:
application/json json;
我什至尝试通过express为文件提供服务并指定标题:
var manifest = fs.readFileSync('routes/manifest.json', 'utf8');
router.get('/manifest.json', function(req, res) {
res.header("Content-Type", 'application/json');
res.json(manifest);
});
并且仍然将其读取为文本/纯文本。
我猜想这是我需要使用nginx进行的操作,但是我发现的所有建议都在谈论我没有的文件。
答案 0 :(得分:0)
fs模块读取您现有的manifest.json文件时,会将其转换为一个大的utf-8字符串,而不是实际的JSON。
在人眼中,它看起来像普通的JSON,但实际上只是字符串中的一堆JSON。
在服务器上,它只是看到该字符串,并按照技术上的要求将其mime类型设置为text / plain即可。
您可以尝试将res.json(manifest);
替换为res.send(JSON.stringify(manifest));
,该变量应采用fs从manifest.json获取的值,并尝试将其转换为具有正确mime类型的正确格式的JSON。