[JS] Application web mutli pages avec Google apps script
Bonjour !
J'essaie de déployer une application web multipage avec google script, mon script est lié à un projet google cloud.
J'utilise Bootstrap dans le fichier html pour obtenir une navbar avec un bouton Créer et un sous menu qui a un bouton activité.
voici le code côté serveur :
function doGet(request) {
let output = HtmlService.createTemplateFromFile('Home').evaluate();
/*htmlOutput.setFaviconUrl('file url');
Si je décommente j'ai cette erreur : Exception: Le type d'image des icônes favicon n'est pas autorisé. (ligne 3, fichier "Code")
*/
return output;
}
function doPost(e) {
var pageName = e.parameter.pageName;
var subPageName = e.parameter.subPageName;
var htmlOutput = null;
/*htmlOutput.setFaviconUrl('file url');
Si je décommente j'ai cette erreur : Exception: Le type d'image des icônes favicon n'est pas autorisé. (ligne 3, fichier "Code")
*/
// On crée un tableau de correspondances entre les boutons et les pages
var pages = [
{
name: 'Home',
page: 'Home'
},
{
name: 'Module',
page: 'creaModule',
parent: 'Créer'
},
{
name: 'Activité',
page: 'creaActivite',
parent: 'Créer'
}
];
// On recherche la page correspondante au bouton cliqué
var selectedPage = null;
pages.forEach(function(page) {
if (page.name === subPageName || page.name === pageName) {
selectedPage = page;
Logger.log(selectedPage);
}
});
// On vérifie si une page a été trouvée
if (selectedPage) {
// On crée le template de la page
htmlOutput = HtmlService.createTemplateFromFile(selectedPage.page);
htmlOutput.title = selectedPage.name;
// Si la page a un parent, on ajoute le parent au titre
if (selectedPage.parent) {
htmlOutput.title = selectedPage.parent + ' - ' + htmlOutput.title;
}
return htmlOutput.evaluate();
} else {
// Si aucune page n'a été trouvée, on retourne une page d'erreur
htmlOutput = HtmlService.createTemplateFromFile('err');
htmlOutput.title = 'Error';
return htmlOutput.evaluate();
}
}
function include(File) {
return HtmlService.createHtmlOutputFromFile(File).getContent();
}
Lorsque je déploie l'application web, la page Home se charge, mais lorsque je clique sur le bouton "Créer" de mon sous-menu qui devrait m'amener à creaActivite.html, j'obtiens une erreur de Google Drive :
La console du navigateur (j'utilise Opera) me renvoie cette erreur :
Failed to load resource: creaActivite.html the server responded with a status of 404 ()
Je n'arrive pas et ne sais pas comment obtenir plus de détails sur ce qui se passe (ou pas) et je ne comprend pas ce qui ne va pas dans mon code, quelqu'un peut-il m'aider ?
Merci par avance
J'ai pu adapter la réponse faite sur ce post chez Stack Overflow. Ca marche niquel surtout si on tient bien compte du commentaire plus bas précisant de mettre une balise supplémentaire dans le <head> des pages html