vue 本地项目文件下载 文件后缀变为.html
时间: 2024-09-25 15:19:14 浏览: 35
vue在index.html中引入静态文件不生效问题及解决方法
当你在Vue.js本地项目中尝试下载一个文件,比如通过`axios`发送请求获取资源并使用`file-saver`库下载时,如果后缀名原本不是`.html`,但在下载完成后自动变成了`.html`,这通常是因为浏览器为了安全原因对文件名进行了处理。
浏览器会根据MIME类型来决定默认的文件扩展名。如果你下载的内容本质上是非HTML内容,浏览器可能会将其识别为可以编辑的文本,因此将文件后缀改为`.html`,使其看起来像是一个网页。解决这个问题的一种常见做法是在服务器端设置正确的Content-Type响应头,明确指定下载文件的类型,例如:
```javascript
// 使用axios发送请求
axios.get('/your-file', {
responseType: 'blob',
}).then(response => {
// 设置正确的Content-Disposition头,防止浏览器更改文件名
const blob = new Blob([response.data], { type: 'application/octet-stream' });
saveAs(blob, 'your-file.ext');
});
```
这里将`Content-Type`设置为`application/octet-stream`,表示这是一个二进制数据,而非HTML,这通常不会改变文件的实际内容。
阅读全文