如果文件名缺少“.xml”后缀,为什么 Chrome 会尝试在本地主机上下载/保存由 gatsby 提供的 xml 文件,而不是在浏览器中显示?

如果文件名缺少“.xml”后缀,为什么 Chrome 会尝试在本地主机上下载/保存由 gatsby 提供的 xml 文件,而不是在浏览器中显示?

这是一个关于 Web 服务器如何处理 XML 文件请求的问题,具体取决于文件是否带有“.xml”后缀。盖茨比. 在本地主机上开发。

我有一个由 gatsby 提供的 xml 文件/资源​​(即使用gatsby developgatsby serve

如果我将文件命名为类似的名字my-xml-file.xml,然后通过浏览器 (Chrome) 导航到该文件http://localhost:8000/my-xml-file.xml,那么一切都很好。Chrome 会在浏览器中加载/显示它。

但是,如果我将文件重命名为my-xml-file,即从文件名中删除“.xml”后缀,那么当我尝试通过 浏览器 (Chrome) 导航到它时,http://localhost:8000/my-xml-fileChrome 不会加载/显示它。相反,在这种情况下,Chrome 会打开一个另存为对话框窗口。

知道这里发生什么事了吗?

这让我感到困惑的原因是,如果我访问网络上其他我知道是 xml 文件的位置,并且这些文件没有以“.xml”为后缀,那么 Chrome 会很乐意在浏览器中加载/显示这些文件。

例如:

Chrome 直接在浏览器中加载/显示这些 URL

为什么当我提供的 xml 文件文件名中不带 .xml 后缀时的行为与其他网站提供的行为不同(如上述示例)?


我迄今已尝试过一些方法来解决这个问题。

答案1

我认为根据对响应头的调查我找到了答案。感谢您的确认大卫·波斯蒂尔

应根据 xml 资源适当设置 content-type 的值。

在我的本地主机上,名称中没有“.xml”后缀的文件被作为 application/octet-stream 提供。

它可能应该以类似 application/rss+xml; charset=utf-8 或可能是 application/xml 的形式提供。

还没有机会确认这一点,确认后我会报告。

相关内容