Problème
Si vous rencontrez des problèmes avec le navigateur instrumenté avec l'agent Python , suivez les procédures de dépannage standard pour . Voici quelques conseils supplémentaires pour Python.
Solution
Suivez ces recommandations pour vérifier la structure du contenu et vérifier que la compression du contenu n'interfère pas.
Si vous vous attendez à voir l'agent de navigateur ajouté automatiquement mais que ce n'est pas le cas, vérifiez si l'une de ces restrictions peut s'appliquer.
Le
Content-Type
de la réponse HTML doit êtretext/html
.L'en-tête de réponse
Content-Encoding
ne peut pas être défini.L'en-tête de réponse
Content-Disposition
ne peut pas marquer la réponse comme pièce jointe.Le
Content-Disposition
spécifié dans une tag métahttp-equiv
dans l'élément HTML<head>
ne peut pas marquer la réponse comme une pièce jointe.L'élément
<body>
de la réponse HTML doit apparaître dans les 64 premiers Ko.Si vous générez des réponses de page HTML et utilisez le
Content-Type
deapplication/xhtml+xml
, vous pouvez remplacer les types de contenu autorisés pour répertorier à la fois ce type de contenu ettext/html
dans votre fichier de configuration d'agent.browser_monitoring.content_type = text/html application/xhtml+xmlAssurez-vous que
browser_monitoring.content_type
est une liste de types de contenu séparés par des espaces.Lorsque vous ajoutez
application/xhtml+xml
comme type de contenu autorisé pour instrumentation automatique, sachez que la page résultante ne sera plus validée correctement commeapplication/xhtml+xml
, bien que la page doive toujours être chargée et rendue correctement par le navigateur.Pour résoudre les problèmes liés aux autres limitations de contenu, utilisez l’instrumentation manuelle.
Si vous utilisez un middleware WSGI ou un framework Web ou un plug-in qui encode le contenu de la réponse, par exemple lors de la compression de la réponse, l'instrumentation automatique peut ne pas fonctionner. L'agent Python fournit un support spécifique pour Django GZipMiddleware
et Flask-Compress
avec auto-instrumentation. Cependant, ceci n'est actuellement pas pris paste.gzipper
en charge pour, car il contient un bug qui le rend inutilisable en conjonction avec le middleware de l'agent WSGI qui ajoute monitoring l'instrumentation des navigateurs.
Si vous rencontrez ce problème, utilisez une instrumentation manuelle ou passez à l'utilisation de votre serveur Web ou de votre proxy frontal pour compresser le contenu de la réponse, plutôt que d'effectuer une compression dans votre application Web. Cette dernière solution peut également offrir des avantages en termes de performances.
Lorsque vous inspectez la source de votre page, vous voyez l'agent du navigateur inséré de manière incorrecte dans un bloc conditionnel.
<!--[if IE]> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/javascript"> /*Browser agent here*/ </script><![endif]-->
Cela peut se produire parce que l'agent Python ne vérifie pas ces blocs conditionnels lorsqu'il décide de placer l'agent du navigateur. Envisagez d’utiliser une instrumentation manuelle dans ce cas.