Un bouton WordPress reste inactif malgré une réponse HTTP 200
Après la mise à jour d’une extension WordPress, la page s’affiche, mais le bouton qui ouvre un panneau interactif ne réagit plus. La console signale qu’un module JavaScript a été refusé à cause du type MIME. Dans l’onglet Réseau, le script principal est reçu avec un statut 200. Une de ses dépendances reçoit elle aussi un 200. Ouvrez la réponse de la dépendance et examinez son en-tête `Content-Type`. La réussite de la requête décrit le transport. Le navigateur doit encore pouvoir traiter la réponse comme un module JavaScript.
Une extension peut déclarer un module avec `wp_enqueue_script_module()`, disponible depuis WordPress 6.5. Le fichier d’entrée peut à son tour importer plusieurs fichiers, notamment une dépendance dont le nom se termine en `.mjs`. Le navigateur applique ses contrôles de type à chaque module du graphe. Une seule dépendance refusée suffit à empêcher l’évaluation du point d’entrée qui en dépend. Une page WordPress peut donc conserver son HTML et ses styles alors que la fonction interactive ne démarre jamais.
Deux réponses donnent un symptôme proche. Le serveur peut livrer les bons octets et les déclarer comme `application/octet-stream`. Il peut aussi servir une page HTML à l’adresse du fichier, par exemple après une réécriture ou parce que la ressource n’existe plus. Dans le premier cas, il faut corriger la façon dont la réponse est typée. Dans le second, il faut retrouver l’URL et le fichier attendus. Le comparatif montre comment séparer les deux cas avant de toucher aux réglages de l’hébergement.
Comparer avant de choisir
Les offres en un coup d’œil
Repérez l’usage et le budget qui vous correspondent, puis consultez la notice pour examiner les limites et les composants nécessaires.
Le tableau défile horizontalement sur petit écran. Au clavier, sélectionnez-le avec Tab, puis utilisez les flèches gauche et droite.
| Offre | Pour quel besoin ? | Tarif et facturation | Renouvellement et assistance |
|---|---|---|---|
| Équipe qui repère ses sites et leurs racines dans le Manager. | À partir de 10,91 CHF HT/mois, soit 130,92 CHF HT sur douze mois à ce repère Cycle et montant à confirmer selon configuration Prix publics hors TVA | Montant à vérifier dans le Manager. Première tentative 14 jours avant échéance si la reconduction automatique est active. | |
| Équipe qui utilise cPanel et sait vérifier la portée d’un réglage. | 7 € HT/mois en équivalent, soit 84 € HT payés pour douze mois Paiement annuel Prix HT, total TTC selon la facturation | 84 € HT pour un renouvellement annuel au barème consulté |
Relever la réponse de la dépendance qui échoue
Sur le domaine de recette, ouvrez les outils de développement du navigateur avant de recharger la page. Dans Réseau, désactivez le cache pendant le test, rechargez et recherchez la ressource citée dans la console. Notez l’URL complète, le statut final et le type retourné. Relevez aussi l’initiateur ou la chaîne d’imports, en partant du fichier qui est réellement chargé. Un fichier d’entrée correctement déclaré peut importer une dépendance qui arrive d’un autre dossier ou d’un autre service de diffusion.
Consultez l’onglet Réponse. Si vous reconnaissez le texte JavaScript prévu, comparez au besoin l’empreinte du corps avec celle de la version approuvée. Si vous voyez une page d’accueil, une page de connexion ou une page d’erreur, notez le titre et les éventuelles redirections. Un téléchargement du corps permet de faire la comparaison sans dépendre de l’aperçu. Depuis un terminal sur une recette autorisée, effectuez une requête GET sur l’adresse exacte, avec sa chaîne de requête de version s’il y en a une. Gardez séparément les en-têtes et les octets.
Si le résultat diffère entre deux domaines, vérifiez que vous demandez la même version du module. Rejouez aussi depuis l’écran WordPress lui-même. Une demande en ligne de commande peut recevoir une réponse différente si le site de recette utilise une session ou si le navigateur charge un autre hôte. Gardez le relevé du navigateur comme preuve de ce qu’a reçu la page. Effacez les en-têtes d’authentification et les cookies de tout relevé destiné à être partagé.
- Copier l’URL affichée dans Réseau pour la dépendance refusée, y compris le paramètre de version.
- Pour conserver un relevé sous PowerShell, mettre l’URL exacte dans `$url` puis lancer `curl.exe -sS -D entetes.txt -o module-recu.bin "$url"`. Examiner `Content-Type` et, en cas de redirection, `Location` avant de relever la réponse finale.
- Comparer le type HTTP, les redirections et le début de la réponse à la livraison approuvée.
- Recharger la page et vérifier si le point d’entrée exécute de nouveau la fonction attendue.
Distinguer un mauvais type d’un mauvais fichier
Quand le corps est le JavaScript attendu, corrigez le type sur la couche qui sert ce fichier. `text/javascript` est le type actuel recommandé pour JavaScript. La vérification du navigateur porte sur le type de la réponse HTTP, y compris lorsque le nom du fichier se termine bien en `.mjs`. Renommer l’extension du fichier sans reconstruire les imports risque de créer une nouvelle erreur de chemin. Évitez aussi de changer un type pour toutes les réponses. L’objectif est de corriger uniquement les modules concernés.
Quand le corps est une page HTML, regardez d’abord si le module figure dans la version de l’extension et dans le dossier servi pour ce domaine. Comparez le nom, la casse et le chemin relatifs, puis suivez les redirections qui modifient l’adresse. Une règle qui envoie vers WordPress les chemins ne correspondant pas à un fichier peut produire une page qui ressemble au site. Forcer un type JavaScript sur ce document laisserait au navigateur du HTML à interpréter et masquerait le diagnostic initial.
Si vous avez un CDN ou un cache devant l’hébergement, comparez les réponses disponibles par les voies de recette prévues pour votre compte. L’en-tête peut être correct au départ et différent sur l’URL réellement utilisée par la page. Identifiez la couche qui fournit la réponse avant de purger. Après correction, invalidez le fichier concerné selon la procédure du cache et contrôlez de nouveau la page et le module. Le statut 200, le type MIME et les octets attendus doivent être cohérents dans le même relevé.
Infomaniak, vérifier le site et la règle Apache
Dans le Manager Infomaniak, identifiez l’hébergement, le site concerné et sa racine. La documentation décrit `.htaccess` pour la configuration Apache et l’accès aux fichiers par FTP ou SSH. Téléchargez une copie du fichier existant avant l’essai. Si le module est livré correctement et qu’Apache sert cette ressource statique, la directive `AddType text/javascript .mjs` associe l’extension au type voulu dans un contexte qui l’autorise. Commencez dans le plus petit dossier de recette approprié, en tenant compte de la manière dont le déploiement gère ce dossier.
Apache documente `AddType` pour `mod_mime`, y compris dans `.htaccess` quand la configuration permet cette directive. La possibilité d’utiliser un fichier `.htaccess` dépend des règles du site. Si l’ajout produit une erreur 500 ou ne change pas le type, restaurez la copie de départ et vérifiez avec le responsable quelle couche sert l’URL. Conservez le réglage de départ et testez aussi un fichier voisin qui doit garder son type d’origine. Une règle limitée au dossier des modules réduit le nombre de réponses à contrôler.
Après l’essai, ouvrez à nouveau la dépendance dans Réseau et relancez la fonction WordPress. La réussite exige que le bon fichier soit servi avec un type JavaScript et que la page exécute effectivement l’action. Le champ des extensions interprétées par PHP répond à un autre besoin. Ici, le navigateur charge un module JavaScript statique. Le réglage recherché concerne donc sa réponse HTTP.
o2switch, confirmer la racine du domaine dans cPanel
Dans cPanel, ouvrez Fichiers → Gestionnaire de fichiers. La documentation o2switch indique que vous pouvez choisir l’adresse d’un site pour rejoindre sa racine et afficher les fichiers cachés dans les paramètres. Utilisez ce repère avant d’éditer une configuration. Si plusieurs domaines ou sous-comptes coexistent, vérifiez le dossier du site de recette. Un fichier placé dans la racine d’un autre site peut donner l’impression que la règle a été ignorée, tout en modifiant un domaine qui fonctionnait.
La documentation cPanel décrit l’interface Types MIME, qui peut être activée ou masquée par l’hébergeur. Si elle est disponible pour votre offre et que sa portée correspond à votre dossier de recette, saisissez `text/javascript` comme type et `mjs` comme extension. Si l’interface est absente, demandez à l’équipe responsable si le serveur qui traite ce domaine accepte `AddType` dans le dossier voulu. Le gestionnaire de fichiers permet de retrouver le chemin et de sauvegarder la configuration. Il ne garantit pas la présence de l’interface MIME ni le résultat d’une directive.
Vérifiez ensuite l’adresse réellement chargée après le cache du site ou le CDN éventuel. Si un type ajouté dans cPanel modifie des ressources au-delà du périmètre prévu, retirez la règle personnalisée depuis la même interface et recommencez avec un périmètre validé. Si l’essai a utilisé `.htaccess`, restaurez son fichier précédent ou retirez la seule directive introduite. Contrôlez le résultat sur le domaine de recette et sur un chemin voisin.
Offres et conditions relevées au 11 novembre 2026
L’Hébergement Web Infomaniak est annoncé à partir de 10,91 CHF par mois, hors TVA dans le tarif relevé. À ce repère, douze mois correspondent à 130,92 CHF HT. L’offre de base indique 250 Go SSD et vingt sites. Le montant exact dépend de la configuration, du cycle et du traitement fiscal de la commande. L’aide indique qu’une fois le renouvellement automatique actif, la première tentative de paiement intervient quatorze jours avant l’échéance. Relevez la prochaine échéance et le montant dans le Manager. Le prix public de départ ne fixe pas ce montant pour votre configuration.
o2switch Grow affiche 7 € HT par mois en équivalent, payés 84 € HT pour douze mois. La fiche d’aide indique 84 € HT au barème consulté pour un renouvellement annuel. La page de l’offre annonce le domaine offert pendant un an, huit threads vCPU et 16 Go de RAM. Faites apparaître à part le domaine au renouvellement et le total TTC à la commande. Pour une modification qui concerne un seul site, vérifiez aussi les limites du compte ou du sous-compte qui héberge la recette.
Les deux prix restent dans leur devise d’origine. Comparez le total de l’année retenue et les coûts annexes réellement nécessaires. Pour ce diagnostic, le critère technique est l’accès au bon domaine et la possibilité de retrouver la couche qui sert la réponse. Un quota de disque plus grand ou un forfait plus cher ne corrige pas une mauvaise déclaration MIME. Une petite modification bien ciblée et un contrôle de la page fournissent une preuve directement liée à l’incident.
Rétablir l’URL si la réponse contient une page HTML
Lorsque la réponse contient du HTML, vérifiez d’abord que la dépendance est bien incluse dans l’archive ou le répertoire généré par la version de l’extension. Inspectez ensuite le chemin dans le fichier d’entrée ou la correspondance utilisée pour l’import. Un import relatif se résout depuis le fichier qui le déclare. Si l’entrée est déplacée dans un dossier de diffusion, le chemin de la dépendance peut changer en même temps. Quand l’éditeur fournit un manifeste de construction, utilisez les noms et chemins qu’il indique pour la version installée.
Sur la copie de recette, comparez la demande d’un module connu qui fonctionne à la demande du module en défaut. Regardez si le serveur reçoit la demande sur le même domaine et dans le même dossier. Si le fichier attendu est absent, restaurez l’ensemble cohérent des ressources de la même version ou redéployez la livraison vérifiée. Un simple ajout d’un fichier de même nom peut mêler deux versions. Si une réécriture ou une redirection prend la main, corrigez seulement la règle responsable avec le mainteneur du site et vérifiez également un permalien WordPress normal.
Faites le retour arrière en réinstallant la dernière livraison complète et en rétablissant la configuration d’origine de la copie. Rejouez le module, la page et un autre écran qui utilise la même extension. Si un outil d’optimisation réécrit les URLs, comparez un essai où la dépendance est exclue de cette réécriture avec le fonctionnement habituel. Conservez la combinaison de réglages qui laisse le module accessible avec la bonne version et dont les pages dépendantes ont été contrôlées.
- Confirmer que la livraison contient la dépendance à l’emplacement résolu par l’import.
- Relever toute redirection et corriger la réponse qui remplace le fichier.
- Tester le module, le permalien et la fonction WordPress après correction.
Quatre réponses comparées dans un navigateur local
Le ZIP contient deux fichiers JavaScript, un script Python et sa notice. Le serveur Python écoute sur la boucle locale. Chromium ouvre une page qui charge un fichier d’entrée et importe un module `.mjs` depuis la même origine. L’exécution ou le refus du graphe est relevé dans le document. Une requête HTTP séparée relève le type, le statut et l’empreinte du corps de la dépendance. Chaque scénario utilise un profil de navigateur temporaire pour que le résultat ne dépende pas d’une réponse précédemment mise en cache.
Le navigateur refuse les octets du module servis en `application/octet-stream`, même avec un statut 200. Il refuse également une page HTML renvoyée avec le même statut et le cas où la dépendance répond 404. Lorsque le serveur associe les octets originaux à `text/javascript`, le module s’exécute et le fichier d’entrée marque la page comme chargée. Les empreintes des réponses binaire et JavaScript sont identiques. Celle du document HTML diffère. Cette comparaison permet d’isoler l’effet de l’en-tête des cas où le contenu lui-même a changé.
Les sept contrôles sont passés depuis le ZIP extrait avec Python 3.14.4 dans Chrome et Edge, tous deux sur Chromium 157. Le test porte sur le comportement du navigateur et les réponses HTTP produites par le serveur local. Les réglages Apache, les fonctionnalités cPanel et les chemins des hébergeurs proviennent de leurs documentations respectives. Utilisez l’exercice pour apprendre à reconnaître le signal, puis rejouez l’essai sur votre copie WordPress avec le véritable module de l’extension.
- Extraire le ZIP et exécuter `python recette.py` avec un navigateur Chromium disponible.
- Comparer les statuts, les types, les empreintes et la décision du navigateur pour les quatre réponses.
Choisir l’offre selon le périmètre que vous pouvez vérifier
Infomaniak convient si l’équipe repère déjà ses domaines et leurs racines dans le Manager et peut intervenir sur la configuration Apache du dossier de recette. Avant de retenir une règle dans `.htaccess`, vérifiez qu’elle est acceptée et qu’elle produit le type attendu sur la réponse réellement utilisée. Conservez les réglages du domaine et le fichier de départ pour pouvoir revenir rapidement au point de comparaison.
o2switch Grow convient si l’équipe retrouve ses installations dans cPanel et peut vérifier la portée des options proposées dans le compte. Le gestionnaire de fichiers aide à confirmer le domaine et les fichiers qui lui appartiennent. La présence de l’interface Types MIME et l’effet de la configuration sur la réponse restent à observer. Si une couche distincte distribue l’extension, faites porter la correction sur cette couche.
Dans les deux cas, consignez l’URL de la page et celle de la dépendance, le type et le contenu reçus, puis le résultat visible de l’action WordPress. Une réponse correcte pour l’URL copiée dans le navigateur doit être accompagnée d’un test de la page qui importe la dépendance, car elle peut utiliser une autre version ou un autre domaine. Gardez aussi le résultat obtenu sur un chemin voisin. Ce relevé suffit à transmettre le diagnostic à une autre personne sans lui demander de modifier l’ensemble des règles de l’hébergement.
Pour aller plus loin
Usages, tarifs et points à vérifier
Les 2 offres en détail
L’ordre des notices ne constitue pas un classement. Comparez les fonctions utiles à votre projet et les conditions de l’offre choisie.
Infomaniak Hébergement Web
Vérifier le type du module côté serveur — Illustration BlogPasCher et visuel officielOuvrir l’illustration en grand ↗À envisager pourÉquipe qui repère ses sites et leurs racines dans le Manager.
Configuration Apache documentée pour le site et vérification par dossier.
Tarif de l’offre
À partir de 10,91 CHF HT/mois, soit 130,92 CHF HT sur douze mois à ce repère
Facturation : Cycle et montant à confirmer selon configuration
Renouvellement / assistance : Montant à vérifier dans le Manager. Première tentative 14 jours avant échéance si la reconduction automatique est active.
Prix publics hors TVA
Relevé le .
Points forts
- Apache et .htaccess documentés
- 250 Go SSD et vingt sites au départ
À prendre en compte
- Acceptation de la directive à vérifier sur le dossier
- Montant du renouvellement propre au dossier
Conditions du tarif et compatibilité
Comprendre l’offre
- Tarif relevé
- À partir de 10,91 CHF HT/mois, soit 130,92 CHF HT sur douze mois à ce repère
- Devise
- CHF
- Facturation
- Cycle et montant à confirmer selon configuration
- Renouvellement et assistance
- Montant à vérifier dans le Manager. Première tentative 14 jours avant échéance si la reconduction automatique est active.
- Taxes et frais
- Prix publics hors TVA
- Engagement et conditions
- Selon le cycle et la configuration du dossier
- Date du relevé
Compatibilité et composants
- WordPress
- Apache
o2switch Grow
Retrouver le dossier du domaine dans cPanel — Illustration BlogPasCher et visuel officielOuvrir l’illustration en grand ↗À envisager pourÉquipe qui utilise cPanel et sait vérifier la portée d’un réglage.
Gestionnaire de fichiers cPanel pour identifier le domaine et le dossier de recette.
Tarif de l’offre
7 € HT/mois en équivalent, soit 84 € HT payés pour douze mois
Facturation : Paiement annuel
Renouvellement / assistance : 84 € HT pour un renouvellement annuel au barème consulté
Prix HT, total TTC selon la facturation
Relevé le .
Points forts
- Gestionnaire de fichiers documenté
- Coût annuel de renouvellement publié
À prendre en compte
- Disponibilité de l’interface Types MIME à vérifier
- Portée d’un réglage à vérifier par domaine
Conditions du tarif et compatibilité
Comprendre l’offre
- Tarif relevé
- 7 € HT/mois en équivalent, soit 84 € HT payés pour douze mois
- Devise
- EUR
- Facturation
- Paiement annuel
- Renouvellement et assistance
- 84 € HT pour un renouvellement annuel au barème consulté
- Taxes et frais
- Prix HT, total TTC selon la facturation
- Engagement et conditions
- Douze mois
- Date du relevé
Compatibilité et composants
- WordPress
- cPanel





