首页 web前端 js教程 Tauri Vue3应用中:如何正确解析本地二进制图像文件?

Tauri Vue3应用中:如何正确解析本地二进制图像文件?

Apr 04, 2025 am 11:27 AM
vue 浏览器 工具 ai

Tauri Vue3应用中:如何正确解析本地二进制图像文件?

Tauri、Vue3应用中解析本地二进制图像文件的解决方案

本文探讨在使用Tauri、Vue3和markdown-it构建的Markdown解析器中,由于安全策略限制导致本地图片无法显示的问题,并提供最终解决方案。

问题:该工具使用v-html渲染Markdown文件中的图片(相对路径)。开发模式下图片正常显示,但构建后,即使路径转换为绝对路径(例如:https://tauri.localhost/img/xxx.png),浏览器安全策略仍阻止前端访问本地图片。

尝试:修改tauri.conf.json中的CSP策略(例如将img-src设置为*)无效。尝试了两种方案:1. 使用Tauri的fs API读取本地文件;2. 在Rust后端读取二进制文件,将数据传递给前端,使用Blob对象解析。两种方案均导致图片显示损坏或无法加载,怀疑问题在于Vue.js的图片解析或数据格式。

初始前端代码尝试将二进制数据转换为字符串,再使用window.btoa编码为base64,最后设置img元素的src属性。

最终解决方案:使用Blob对象和URL.createObjectURL方法生成URL。代码如下:

let img_path = "E:/myProjects2/tauri_vue/mdren/img/a-1-01.png";
const contents = await readBinaryFile(img_path); // 假设readBinaryFile函数已定义
let blob = new Blob([contents], { type: "image/png" });

async function reloadImg() {
  let img_element = document.querySelectorAll("#img-to-remove");
  img_element.forEach(async (element) => {
    element.src = URL.createObjectURL(blob);
  });
}
登录后复制

原因分析:之前的方案失败可能由于CSP配置错误或Rust后端数据传递问题。使用Blob对象和URL.createObjectURL直接创建图片URL,绕过了安全策略限制,成功解决了图片显示问题。

以上是Tauri Vue3应用中:如何正确解析本地二进制图像文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
币安广场怎么样可靠吗 币安广场怎么样可靠吗 May 07, 2025 pm 07:18 PM

币安广场(Binance Square)是币安交易所提供的一个社交媒体平台,旨在为用户提供一个交流和分享加密货币相关信息的空间。本文将详细探讨币安广场的功能、可靠性以及用户体验,帮助你更好地了解这个平台。

2025币安Binance交易所最新登录入口 2025币安Binance交易所最新登录入口 May 07, 2025 pm 07:03 PM

币安(Binance)作为全球领先的加密货币交易所,始终致力于为用户提供安全、便捷的交易体验。随着时间的推移,币安不断优化其平台功能和用户界面,以满足用户不断变化的需求。2025年,币安推出了新的登录入口,旨在进一步提升用户体验。

币安爆仓怎么挽救 币安爆仓怎么挽救 May 07, 2025 pm 07:09 PM

在加密货币交易中,爆仓是一个常见但令人头疼的问题。特别是在使用币安这样的大型交易平台时,用户可能会因为市场的剧烈波动而面临爆仓的风险。本文将详细探讨币安爆仓后如何挽救,以及一些预防措施。

欧意OKX6.118.0版本最新下载教程 欧意OKX6.118.0版本最新下载教程 May 07, 2025 pm 06:51 PM

欧意OKX6.118.0版本最新下载教程:1、点击文章中快捷链接;2、点击下载即可(如果是网页用户请先进行信息注册)。最新安卓版本v6.118.0优化了部分功能和体验,让交易更容易。立即更新App,感受更加极致的交易体验。

2025币安在线网页地址 2025币安在线网页地址 May 07, 2025 pm 06:54 PM

币安(Binance)作为全球领先的加密货币交易所,始终致力于为用户提供安全、便捷的交易体验。随着时间的推移,币安不断优化其平台功能和用户界面,以满足用户不断变化的需求。2025年,币安推出了新的登录入口,旨在进一步提升用户体验。

2025币安最新地址 2025币安最新地址 May 07, 2025 pm 06:57 PM

币安(Binance)作为全球领先的加密货币交易所,始终致力于为用户提供安全、便捷的交易体验。随着时间的推移,币安不断优化其平台功能和用户界面,以满足用户不断变化的需求。2025年,币安推出了新的登录入口,旨在进一步提升用户体验。

为Web开发者准备的10个最新工具 为Web开发者准备的10个最新工具 May 07, 2025 pm 04:48 PM

Web开发设计是一个充满潜力的职业领域。然而,这个行业也面临着诸多挑战。随着越来越多的企业和品牌转向网络市场,Web开发者有机会展示他们的技能并在职业生涯中取得成功。然而,随着对Web开发需求的持续增长,开发人员的数量也在增加,导致竞争日益激烈。但令人振奋的是,如果你具备天赋和意愿,你总能找到新方法来创造独特的设计和创意。作为一名Web开发人员,你可能需要不断寻找新的工具和资源。这些新工具和资源不仅能让你的工作更加便捷,还能提升工作质量,从而帮助你赢得更多的业务和客户。Web开发的趋势不断变化,

第4章 类与面向对象编程第4章 类与面向对象编程 第4章 类与面向对象编程第4章 类与面向对象编程 May 07, 2025 pm 04:42 PM

第4章类与面向对象编程在前面的章节中,我们学习了Kotlin的语言基础知识、类型系统等相关的知识。在本章节以及下一章中,我们将一起来学习Kotlin对面向对象编程以及函数式编程的支持。本章我们介绍Kotlin的面向对象编程。4.1面向对象编程简史50年代后期,在用FORTRAN语言编写大型程序时,由于没有封装机制,那个时候的变量都是“全局变量”,那么就会不可避免的经常出现变量名冲突问题。在ALGOL60中采用了以Begin-End为标识的程序块,使块内变量名是局部的,以避免它们与程序中块外的

See all articles