Pourquoi Chrome essaie-t-il de télécharger / enregistrer le fichier XML servi à partir de gatsby sur localhost, plutôt que de l'afficher dans le navigateur si '.suffixe xml' manquant dans le nom de fichier?
Il s'agit d'une question sur la façon dont un serveur Web traite les demandes de fichiers XML, selon que le fichier a un '.xml ' suff Je travaille avec Gatsby . Développement sur localhost.
J'ai un fichier / ressource xml qui est servi par gatsby (c'est-à-dire en utilisant gatsby develop
ou gatsby serve
)
Si je nomme le fichier quelque chose comme my-xml-file.xml
et que j'y accède ensuite dans le navigateur (Chrome), via http://localhost:8000/my-xml-file.xml
, alors tout va bien. Chrome charge/affiche cela dans le navigateur.
Cependant, si je renomme le fichier en juste my-xml-file
, c'est-à-dire supprimez le '.xml ' suffixe du nom de fichier, puis lorsque j'essaie d'y accéder dans le navigateur (Chrome), via http://localhost:8000/my-xml-file
, Chrome ne le charge pas / ne l'affiche pas. Au lieu de cela, dans ce scénario, Chrome ouvre une fenêtre de dialogue Enregistrer sous.
Des idées que se passe-t-il ici ?
La raison pour laquelle cela me confond est que je vais à d'autres endroits sur le Web que je connais sont des fichiers XML, qui sont servis sans le '.suffixe xml, Chrome les charge / affiche volontiers dans le navigateur.
Par exemple :
Chrome charge/affiche ces URL directement dans le navigateur
Pourquoi le comportement est-il différent pour moi lorsque je sers un fichier XML sans le.suffixe xml dans le nom de fichier par rapport à d'autres sites, comme les exemples au-dessus ?
Choses que j'ai essayées jusqu'à présent pour comprendre cela.
-
Servir le fichier localement en utilisant /my-xml-file.xml, ouvert dans Chrome
- résultat: Chrome charge/affiche le fichier dans la fenêtre du navigateur
-
Servir le fichier localement en utilisant /my-xml-file, ouvert dans Chrome
- résultat : Chrome ouvre la boîte de dialogue enregistrer sous
-
Renommez le fichier et servez-le comme fichier /my-xml.rss, ouvrir en Chrome
- résultat: Chrome charge/affiche le fichier dans la fenêtre du navigateur
-
Servir le fichier localement en utilisant /my-xml-file.xml, ouvert dans Edge
- résultat: Edge charge /affiche le fichier dans la fenêtre du navigateur
-
Servir le fichier localement en utilisant /my-xml-file, ouvert dans Edge
- résultat: Edge charge /affiche le fichier dans la fenêtre du navigateur
-
A cherché des problèmes similaires dans StackOverflow. Trouvé le suivant (mais aucun ne semble correspondre à ce problème plus précisément
- https://stackoverflow.com/questions/14952514/how-to-force-open-links-in-chrome-not-download-them
- https://stackoverflow.com/questions/11026466/open-with-chrome-instead-of-download-it
- https://stackoverflow.com/questions/45069386/make-a-file-open-in-browser-instead-of-downloading-it-using-chrome-firebox
- https://stackoverflow.com/questions/28006188/browsers-try-to-download-html-file-instead-of-opening
- https://support.google.com/chrome/thread/2263322?hl=en
- Vérifié l'en-tête de réponse de mon exemple local et l'a comparé avec d'autres exemples ci-dessus. Il y a quelque chose qui a attiré mon attention... la valeur de la réponse pour
Content-type
diffère...