应用场景:有时候我们需要下载的文件数量不多且内容是固定不变的静态文件(如:模板之类),那么实现下载功能在前端就可以完成,不需要和服务端进行交互。如需下载内容较为复杂是动态文件,请移步 传送门:Vue中 实现文件流下载
本文vue-cli 版本:3.x, 4.x
1. 将待下载的文件放在 public 里
public 文件夹下的文件并不会被 Webpack 处理,它们会直接被复制到最终的打包目录下。
必须使用绝对路径引用这些文件,简单说 public 就是用来存放万年不变的文件。
2. 组件中代码实现
<template> <div class="about"> <el-button type="primary" @click="download">下载</el-button> </div> </template> <script> export default { data() { return {}; }, methods: { download(){ let a = document.createElement('a'); a.href = `/static/test.xlsx`; a.download = '测试表格.xlsx'; a.click(); } }, mounted() {}, }; </script>
3. dist文件
最后将 dist 包在服务器部署便可