Nginx:将文件作为文本提供,而无需附加 .txt

lwo*_*ood 3 nginx mime-type

我在我的网站上链接到了一些 .rb(Ruby 脚本)文件。

默认情况下,浏览器只是将它们下载到“下载”文件夹,就像它下载 zip 文件一样。

我希望浏览器将其视为文本,因此 Ruby 脚本将显示在浏览器中。

但是,如果我以正常方式执行此操作,它确实会显示在浏览器中,但问题是当用户对文件执行“右键单击另存为”时,下载的文件会附加 .txt,例如 myscript.rb.txt

使用 nginx 设置可以避免这个 .txt 扩展名吗?

小智 5

您可以通过在 nginx 配置中设置 types 指令来指定您希望 nginx 在哪种 mimetype 中提供文件。我不知道其他 linux 发行版,但如果您使用的是 ubuntu,/etc/nginx/mime.types默认情况下包括在内。

要提供.rb文件,请text\plain确保/etc/nginx/mime.types包含以下内容:

types {
   ...
   text/plain    txt rb;
   ....
}
Run Code Online (Sandbox Code Playgroud)

然后您应该能够将文件下载为 txt 而不带 txt 扩展名。我使用 Chrome/Mac OS X 做到了这一点,它按预期工作。注意:这意味着如果您使用 nginx 为多个站点提供服务,所有将返回.rb扩展名为文本的文件。