Azure関数を使用してHTMLファイルを開いて読み込み、返そうとしています。私はローカルに開発しています。ログには、関数がブラウザで正常に実行されたと表示されます。私は500の内部サーバーエラーを受けています。私はここで何か間違っているのですか?Azure関数からHTMLファイルを提供する際にエラーが発生しました
const fs = require('fs');
const path = require('path');
const mime = require('../node_modules/mime-types');
module.exports = function (context, req) {
const staticFilesFolder = 'www/build/';
const defaultPage = 'index.html';
getFile(context, req.query.file);
function getFile(context, file) {
const homeLocation = process.env["HOME"];
if(!file || file == null || file === undefined){
context.done(null,{status:200,body:"<h1>Define a file</h1>",headers:{
"Content-Type":" text/html; charset=utf-8"
}});
}
fs.readFile(path.resolve(path.join(homeLocation, staticFilesFolder, file)),
(err, htmlContent) => {
if (err) {
getFile(context, "404.html");
}
else {
const res = {
status: 200,
body: htmlContent,
headers:{
"Content-Type": mime.lookup(path.join(homeLocation, staticFilesFolder, file))
}
}
context.done(null,res);
}
})
}
};
注 私は404.htmlが存在するとのindex.htmlが存在することを確信しています。 htmlContent
の内容を記録すると、正しい出力が得られます。クロム
に
functions.json
応答I "は、コンテンツ長が" 406
にステータスコードを変更するヘッダ削除した場合Update 1コードはAzure Portal上で正常に動作しているように見えますが、ローカルで実行しているときは機能していません。あなたがHTTPからの戻りデータの2つの方法を組み合わせているように見えます
はちょうどあなたのコードを試してみましたが、それは私のために正常に動作します。あなたはそれを紺碧に展開しようとしましたか? –
Azure Portalで試してみましたが、正常に動作しています。しかし、それは何らかの理由でローカルに動作していません。 –
"index.html"とは何ですか?ローカルエラーにはメッセージがありますか?(クロム "ネットワーク"ツールの[応答]タブ) –