[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é.

image

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 :

image

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

Rechercher des sujets similaires à "application web mutli pages google apps script"