nginx 配置本地转向另一个静态文件,以及解决浏览器的预览而不是下载文件问题
有时候一些静态的文件放在另一个非站内的目录中,或者URL中并不是原来的目录
如下配置:注意 break 关键字;
location ~* ^/download/(video|image)/ {
root /data/files;
default_type application/octet-stream;
rewrite ^/download/(.*)$ /$1 break;
if (!-e $request_filename) {
return 405;
}
}以下内容转摘自:https://cloud.tencent.com/developer/article/1488296
当我们在浏览器中链接一个文件的下载地址(音视频/图片)的时候,本意是想让浏览器执行下载操作,但默认是访问了一个在线预览的页面进行展示。
这个时候,通过标签的 download 属性实现下载是其中常见也是比较简单的一种方法。
download属性是 HTML5 中标签新增的一个属性,此属性会强制触发下载操作,指示浏览器下载 URL 而不是导航到它,并提示用户将其保存为本地文件,例如:
<a href="result.png" download="filename">download</a>如果缺少download属性,点击 "download" 会直接变成预览图片,当添加download属性后则会触发图片的下载。
兼容性还好,除了IE的所有版本不支持,其它都支持了:https://caniuse.com/#search=download
文件命名问题
download属性不仅可以触发下载,也能指定下载文件名:
<a href="test.png" download="joker.png">下载</a>如果下载文件的后缀与源文件保持一致,可以设置缺省文件名:
<a href="test.png" download="joker">下载</a>`
download 属性与文件名直接相关联。
遗憾的是,download属性目前仅适用于同源 URL,即如果需要下载的资源地址是跨域的,download属性就会失效。
注:Chrome65 之前是支持 download 属性触发文件跨域下载的,之后则严格遵循同源策略,无法再通过 download 属性触发跨域资源的下载。而 FireFox 一直不支持跨域资源的 download 属性下载。
版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/635.html
转载时须注明出处及本声明