Forum Programmation.autre RÉSOLU [javascript] - utilisation locale

Posté par  . Licence CC By‑SA.
Étiquettes :
3
25
fév.
2026

Bonjour à vous,

en tant que professeur de physique, j'aime bien utiliser la page d'accueil du site https://manytinythings.github.io/ pour illustrer la modélisation des états de la matière (les 3 premiers scripts).

Néanmoins, j'aimerais pouvoir en disposer en local, pour parer à toute éventualité (site retiré, ou accès internet HS le jour ou j'en ai besoin).

Je pensais que ce serait facile, comme c'est une page github.io : j'ai récupéré la source, et modifié les chemins des 2 fichiers js (canvas.js & functions.js) dans l'entête du fichier index.html :

/assets/… → ./assets/…

Et là c'est le drame : ça ne marche pas du tout.

les outils du développeur de firefox m'indiquent principalement 1 erreur dans le fichier functions.js:

Uncaught TypeError: v2 is not a function

cette erreur n'apparaît pas sur le site github pages, et pourtant les fichiers js sont strictement identiques (j'ai l'erreur même si je fait pointer mon index.html local vers les js du site github).

pour ce que ça vaut, une recherche dans le fichier functions.js m'indique que v2 est bien défini (à la ligne 640)

Bref, n'y connaissant rien en javascript, j'en fait appel à votre expertise.

  • # [HS] Gravitation

    Posté par  (site web personnel) . Évalué à 3 (+0/-0).

    Sur la première animation, la gravité de la planète me paraît monstrueuse eu égard au gradient vertical de densité. Ça sent les unités réduites. Me tromperais-je ?

    NB : je n'y connais rien au javascript…

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: [HS] Gravitation

      Posté par  . Évalué à 2 (+0/-0).

      Bien vu pour le gradient de densité. C'est aussi une des raisons qui me fait utiliser ce site : on peut ainsi assez bien faire voir aux élèves que mêmes les gaz subissent les effets de la gravité (mais eux ne voient pas spontanément ce gradient de densité).

      Pour ta question sinon, je ne suis pas qualifié pour y répondre.

  • # Le chemin

    Posté par  . Évalué à 2 (+1/-0).

    Tu ouvres sans doute le fichier index.html directement dans Firefox, donc tu es en protocole file://.

    Tu devrais peut être mettre "assets/…" et non "./assets/…" pour le chemin de tes fichiers Javascript qui ne sont probablement pas chargés, et du coup, la fonction v2 manque alors qu'elle est appelée dans du code Javascript dans le corps du HTML.

    Idem avec le fichier CSS (style.css).

    • [^] # Re: Le chemin

      Posté par  (site web personnel) . Évalué à 3 (+1/-0).

      (Kyo n'a rien à voir dans l'histoire…)

      Le changement trivial est suffisant.

      En revanche, le fait d'avoir un index.html explicite en fin d'URL casse la logique de détermination de « où sommes-nous ? ».

      Une option serait de modifier le code pour autoriser ce cas de figure (mais flemme de patcher du JS), une autre option est de faire pointer un serveur web vers le dépôt, et de compter sur la fonctionnalité d'index automatique pour résoudre le souci. J'avais un lighttpd sous la main, et ceci suffit pour avoir un http://localhost/ fonctionnel :

      server.document-root        = "/tmp/ManyTinyThings.github.io"
      

      Debian Consultant @ DEBAMAX

      • [^] # Everything in its right place

        Posté par  . Évalué à 2 (+0/-0).

        (si Kyo est exclu, peut-être que Radiohead…)

        Je confirme qu'écrire "assets/…" ou "./assets/…" fonctionne tout aussi bien/mal (J'avais effectivement fait de même pour le CSS, ce qui me permettais de vérifier la validité de ma méthode, mais n'en avais pas parlé, car pensais que c'était HS).

        En revanche, le fait d'avoir un index.html explicite en fin d'URL casse la logique de détermination de « où sommes-nous ? ».

        C'est semble-t-il exactement le problème, même si je ne comprends pas où ça se joue : l'URL https://manytinythings.github.io/index.html casse effectivement aussi le JS avec la même erreur.

        Merci pour la solution du serveur web qui n'est pas ma solution préférée, car je fais en général mes cours dans un environnement "hostile" (Windows en simple utilisateur), et je n'ai pas envie de voir s'il est possible de mettre en place un serveur web rapidement en utilisateur sous Windows pour un point de cours qui ne me prendra que 5-10 minutes.

        flemme de patcher du JS

        Tu en as déjà fait bien assez pour moi avec tout ce que tu as mis en place pour ton message, merci bien.
        Étant une bille en JS, j'ai "patché" à la Rache : j'ai retiré tout le début du JS consacré à la navigation du site, et en retirant tout ce qui est avant la définition de la fonction Pool (l.611), ça fonctionne pour ce qui est mon besoin : je peux montrer mes trois états de la matière :).

  • # c'est du ruby...

    Posté par  (site web personnel) . Évalué à 6 (+4/-0). Dernière modification le 25 février 2026 à 14:57.

    le code est ici :

    https://github.com/ManyTinyThings/ManyTinyThingsWeb

    le code adapté pour https://manytinythings.github.io/ est sur :

    https://github.com/ManyTinyThings/ManyTinyThings.github.io

    de fait, c'est peut-être plus simple à déployer que LinuxFr.org mais il va te falloir du Ruby on Rails ;-)

    c'est expliqué ici :
    https://github.com/ManyTinyThings/ManyTinyThingsWeb/blob/master/Gemfile

    # This will help ensure the proper Jekyll version is running.
    # Happy Jekylling!
    gem "jekyll", "3.2.1"
    
    # This is the default theme for new Jekyll sites. You may change this to anything you like.
    gem "minima"
    
    # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
    # uncomment the line below. To upgrade, run `bundle update github-pages`.
    # gem "github-pages", group: :jekyll_plugins

    tu n'es pas à l'abri d'avoir l'intégralité en full-web (mais avec les bons chemins)

    • [^] # Re: c'est du ruby...

      Posté par  . Évalué à 2 (+0/-0).

      En fait Ruby est utilisé pour faire fonctionner jekyll qui est un générateur de site statique : si je ne dis pas de bêtise le code de https://github.com/ManyTinyThings/ManyTinyThingsWeb est traité par Jekyll puis publié dans https://github.com/ManyTinyThings/ManyTinyThings.github.io.
      Comme indiqué sur le site de Jekyll les pages github.io sont générées ainsi, mais elles sont statiques.
      Comme l'indique Cyril Brulebois dans le fil au-dessus, ce qu'il me manquait pour faire fonctionner le site github.io "out of the box", c'est un serveur http. Mais je cherchais une solution avec juste un fichier html.
      Merci quand même pour avoir creusé mon problème.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.