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

How to display the contents of a file on an HTML page?

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

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

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

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

Resource interpreted as Document but transferred with MIME type text/markdown: "https://www.example.fr/CHANGELOG.md".

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

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

HTTP 响应带有 Content-Type header 来告诉客户端响应中的数据类型。

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

浏览器收到响应后,决定如何处理。通常,如果资源是它理解的类型(因此所有浏览器都支持 HTML 文档),它将内联呈现资源,并下载它不支持的资源 built-in。

有时浏览器会 content-sniff 文件,确定 content-type 是错误的,并区别对待。

Chrome 正在(错误地)这样做,而 Firefox 不是。

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

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

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