我目前有两个目录。 我想要实现的是让 nginx 像现在一样对所有静态文件和文件夹正常工作app/static
。app/static/downloads
location /static/ {
alias /home/www/api.to/static/;
expires 35d;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
}
但我想发送/static/downloads
子目录中的所有文件,例如static/downloads/blah/blah.pdf
二进制文件。
我需要为此创建一个新的服务器块吗?我该如何实现这一点?
换句话说,我有一个应用程序向用户提供该文件。但由于这是一个cdn.app
URL,它会在新的浏览器选项卡中打开文件,而不是将其作为下载发送。
答案1
要强制 Nginx 下载文件,请在配置中执行以下操作:
location /static/downloads {
add_header Content-disposition "attachment; filename=$1";
default_type application/octet-stream;
}
重新启动,Nginx 和其中的任何内容/static/downloads
都应该被下载,而不是作为 HTML 等进行处理。
更多详情可找到这里。