J'essaie d'ouvrir, de lire et de renvoyer un fichier HTML à l'aide des fonctions Azure. Je développe localement et les journaux indique que la fonction exécutée avec succès cependant sur le navigateur j'obtiens 500 erreur de serveur interne. Est-ce que je fais quelque chose de mal ici?Erreur lors du traitement des fichiers HTML à partir d'une fonction Azure
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);
}
})
}
};
Remarque je suis sûr qui existe 404.html et existe index.html. Lorsque je consigne le contenu de htmlContent
, la sortie est correcte.
functions.json
{
"disabled": false,
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"methods":["get"],
"route":"home",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
Réponse sur Chrome
Si j'enlevé en-tête "Content-Length" les modifications du code d'état 406.
Mise à jour 1 Le code semble fonctionner normalement sur Azure Portal, mais il ne fonctionne pas lorsque vous l'exécutez localement.
juste essayé votre code et il fonctionne très bien pour moi (sur place/azur). Avez-vous essayé de le déployer sur azur? –
Je viens de l'essayer sur Azure Portal et ça marche très bien. Cependant, il ne fonctionne toujours pas localement pour une raison quelconque. –
Qu'est-ce que le contenu "index.html"? Les erreurs locales ont-elles des messages (onglet Response dans l'outil chrome "network")? –