如何在 HTML 页面上显示文件的内容?

时间:2021-04-21 13:07:30

标签: html file iframe bootstrap-4 changelog

我在我网站的根目录创建了一个 CHANGELOG.md 文件,并在 Iframe 中使用它在模态窗口中显示它:

<iframe src="/CHANGELOG.md" frameborder="0" height="100%" width="100%"></iframe>

如何防止在 iframe 中下载文本文件?

在 FireFox 上下载文件。在 Chrome 上它没有被下载,但我在控制台中有这个警告:

<块引用>

资源被解释为 Document 但以 MIME 类型传输 文本/降价:“https://www.example.fr/CHANGELOG.md”。

enter image description here

文件内容显示正常,但为什么文件下载到某些网络浏览器?

这个小问题我已经解决了好几天了,但没有解决办法。

1 个答案:

答案 0 :(得分:0)

HTTP 响应带有一个 Content-Type 标头,用于告诉客户端响应中的数据类型。

正确配置的服务器会说 Markdown URL 的类型为 text/markdown,而 HTML URL 的类型为 text/html

当浏览器得到响应时,它决定如何处理它。通常,如果资源是它可以理解的类型(因此所有浏览器都支持 HTML 文档),它会内联呈现资源,并下载它没有内置支持的资源。

有时浏览器会对文件进行内容嗅探,确定内容类型有误,然后区别对待。

Chrome 正在(错误地)这样做,而 Firefox 则没有。

解决方案是以浏览器可以理解的格式呈现数据。

对于 Markdown,两个明显的选项是:

  • 重新配置服务器以谎报它是什么类型的文件并假装它是 text/plain。 (您也可以将文件重命名为 .txt
  • 将文件转换为支持的格式(例如 HTML)。您可以编写一个服务器端程序来自动执行此操作。
相关问题