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

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

默认情况下,浏览器只是将它们下载到“Downloads”文件夹,因为它压缩文件。

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

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

这个.txt扩展名可以通过nginx设置来避免吗?

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

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

 types { ... text/plain txt rb; .... } 

那么你应该能够下载文件为TXT文件,而不需要TXT扩展名。 我用Chrome / Mac OS X做了这个,它按预期工作。 注意:这意味着如果您使用nginx服务多个站点,所有将以.rb扩展名的文件作为文本返回。