Ich versuche, HTML-Dateien mithilfe von Azure-Funktionen zu öffnen, zu lesen und zurückzugeben. Ich entwickle lokal und die Logs sagen, dass die Funktion erfolgreich ausgeführt wurde aber auf dem Browser bekomme ich 500 interne Serverfehler. Mache ich hier etwas falsch?Fehler beim Bereitstellen von HTML-Dateien aus einer Azure-Funktion
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);
}
})
}
};
Hinweis Ich bin sicher, dass 404.html existiert und index.html existiert. Wenn ich den Inhalt von htmlContent
logge, gibt es die korrekte Ausgabe.
functions.json
{
"disabled": false,
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"methods":["get"],
"route":"home",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
Antwort auf Chrome
Wenn ich "Content-Length" entfernt, um die Statuscode ändert Header auf 406.
Update 1 Der Code scheint normal auf Azure Portal ausgeführt zu werden, funktioniert jedoch nicht, wenn er lokal ausgeführt wird.
versucht einfach Ihren Code und es funktioniert gut für mich (lokal/Azurblau). Haben Sie versucht, es in azurblau zu stellen? –
Ich habe es gerade auf Azure Portal versucht und es funktioniert gut. Aus irgendeinem Grund funktioniert es jedoch immer noch nicht lokal. –
Was ist "index.html" Inhalt? Haben lokale Fehler Nachrichten (Response-Registerkarte in Chrome "Netzwerk" -Tool)? –