最近在前端项目中遇到了需要点击a进行下载的场景,具体代码如下
<a href='/downloads/xxx.xls' download>下载</a>
其中a标签中有一个download属性,引用一下w3c的定义
定义和用法 download 属性规定被下载的超链接目标。
在 a 标签中必须设置 href 属性。
该属性也可以设置一个值来规定下载文件的名称。所允许的值没有限制,浏览器将自动检测正确的文件扩展名并添加到文件 (.img, .pdf,
.txt, .html, 等等)。
大概意思就是加了download属性以后就不是跳转了,变成点击下载了。
遇到的问题是一开始在同级目录下创建downloads文件夹并且加入文件,通过./downloads/xxx.xls的形式访问不到,在父级目录下创建文件夹也访问不到。于是就去看了官方文档,在Ant Design Pro官方的常见问题下面有一条为
如何使用图片等静态资源? 可以直接使用绝对路径(需要图床支持),若需直接使用本地文件,可按以下方式引入。
<img src={require(’…/assets/picture.png’)} /
于是将代码改成这种方式,但是ESLint给了以下提示
Do not import modules using an absolute path 说明这种方式好像行不通。这时候我想可能不是路径的问题。于是我看了看代码的目录解构,如下所示

发现有一个public目录,里面放了几张图片,于是抱着试试的心态将downloads文件夹移到public目录下,修改保存之后,还是通过下面这条代码,成功下载。
<a href='/downloads/xxx.xls' download>下载</a>
最后是关于路径的问题 一般有下面几种表示方式
. 代表目前所在的目录,两个.代表上一层目录 /代表根目录
这个问题可能对于"老前端"来说比较简单了,但是作为一个后端程序员来写前端,还是有好多东西不知道,还有好多东西需要学习,所以在这简单记录一下。
本文讲述了在React项目中使用Ant Design Pro框架时,遇到a标签下载资源路径问题的解决过程。通过尝试相对路径、绝对路径和引入require,最终发现将下载文件放置在public目录下,配合相对路径可以实现资源下载。这个问题对于前端开发者来说可能简单,但对于后端转向前端的程序员是个学习点。
400

被折叠的 条评论
为什么被折叠?



