Tauri、Vue3應(yīng)用中解析本地二進(jìn)製圖像文件的解決方案
本文探討在使用Tauri、Vue3和markdown-it構(gòu)建的Markdown解析器中,由於安全策略限制導(dǎo)致本地圖片無法顯示的問題,並提供最終解決方案。
問題:該工具使用v-html
渲染Markdown文件中的圖片(相對(duì)路徑)。開發(fā)模式下圖片正常顯示,但構(gòu)建後,即使路徑轉(zhuǎn)換為絕對(duì)路徑(例如: https://tauri.localhost/img/xxx.png
),瀏覽器安全策略仍阻止前端訪問本地圖片。
嘗試:修改tauri.conf.json
中的CSP策略(例如將img-src
設(shè)置為*
)無效。嘗試了兩種方案:1. 使用Tauri的fs
API讀取本地文件;2. 在Rust後端讀取二進(jìn)製文件,將數(shù)據(jù)傳遞給前端,使用Blob對(duì)象解析。兩種方案均導(dǎo)致圖片顯示損壞或無法加載,懷疑問題在於Vue.js的圖片解析或數(shù)據(jù)格式。
初始前端代碼嘗試將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為字符串,再使用window.btoa
編碼為base64,最後設(shè)置img
元素的src
屬性。
最終解決方案:使用Blob對(duì)象和URL.createObjectURL
方法生成URL。代碼如下:
let img_path = "E:/myProjects2/tauri_vue/mdren/img/a-1-01.png"; const contents = await readBinaryFile(img_path); // 假設(shè)readBinaryFile函數(shù)已定義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配置錯(cuò)誤或Rust後端數(shù)據(jù)傳遞問題。使用Blob對(duì)象和URL.createObjectURL
直接創(chuàng)建圖片URL,繞過了安全策略限制,成功解決了圖片顯示問題。
以上是Tauri Vue3應(yīng)用中:如何正確解析本地二進(jìn)製圖像文件?的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

以太坊是一個(gè)基於智能合約的去中心化應(yīng)用平臺(tái),其原生代幣ETH可通過多種方式獲取。 1、通過Binance必安、歐意ok等中心化平臺(tái)註冊(cè)賬戶、完成KYC認(rèn)證並用穩(wěn)定幣購(gòu)買ETH;2、通過去中心化平臺(tái)連接數(shù)字儲(chǔ)存,使用穩(wěn)定幣或其他代幣直接兌換ETH;3、參與網(wǎng)絡(luò)質(zhì)押,可選擇獨(dú)立質(zhì)押(需32個(gè)ETH)、流動(dòng)性質(zhì)押服務(wù)或在中心化平臺(tái)一鍵質(zhì)押以獲取獎(jiǎng)勵(lì);4、通過為Web3項(xiàng)目提供服務(wù)、完成任務(wù)或獲得空投等方式賺取ETH。建議初學(xué)者從主流中心化平臺(tái)入手,逐步過渡到去中心化方式,並始終重視資產(chǎn)安全與自主研究,以

1、首先確保設(shè)備網(wǎng)絡(luò)穩(wěn)定並有足夠的存儲(chǔ)空間;2、通過官方提供的下載地址[adid]fbd7939d674997cdb4692d34de8633c4[/adid]進(jìn)行下載;3、根據(jù)設(shè)備提示完成安裝,官方渠道安全可靠;4、安裝完成後可體驗(yàn)與HTX、歐易等平臺(tái)相媲美的專業(yè)交易服務(wù);新版本5.0.5功能亮點(diǎn)包括:1、優(yōu)化用戶界面,操作更直觀便捷;2、提升交易性能,減少延遲與滑點(diǎn);3、增強(qiáng)安全防護(hù),採(cǎi)用先進(jìn)加密技術(shù);4、新增多種技術(shù)分析圖表工具;使用時(shí)需注意:1、妥善保管賬戶密碼,避免在公共設(shè)備登錄;2、

首先選擇信譽(yù)良好的交易平臺(tái)如幣安、歐易、火幣或大門交易所;1、註冊(cè)賬戶並設(shè)置強(qiáng)密碼;2、完成身份驗(yàn)證(KYC)提交真實(shí)證件;3、通過C2C交易選擇合適商家購(gòu)買USDT並完成支付;4、啟用雙重身份驗(yàn)證、設(shè)置資金密碼並定期檢查賬戶活動(dòng)以確保安全,整個(gè)流程需在官方平臺(tái)操作以防範(fàn)網(wǎng)絡(luò)釣魚,最終順利完成USDT的購(gòu)買與安全管理。

首先選擇信譽(yù)良好的數(shù)字資產(chǎn)平臺(tái),1、推薦幣安、歐易、火幣、大門交易所等主流平臺(tái);2、訪問官網(wǎng)點(diǎn)擊“註冊(cè)”,使用郵箱或手機(jī)號(hào)並設(shè)置高強(qiáng)度密碼;3、完成郵箱或手機(jī)驗(yàn)證碼驗(yàn)證;4、登錄後進(jìn)行身份驗(yàn)證(KYC),提交身份證明文件並完成人臉識(shí)別;5、啟用雙重身份驗(yàn)證(2FA)、設(shè)置獨(dú)立資金密碼,並定期檢查登錄記錄以確保賬戶安全,最終成功開通並管理USDT虛擬幣賬戶。

首先通過官方渠道下載幣安App以確保安全。 1. 安卓用戶應(yīng)訪問官網(wǎng),確認(rèn)網(wǎng)址正確後下載Android安裝包,開啟瀏覽器的“允許安裝未知來源應(yīng)用”權(quán)限,完成安裝後建議關(guān)閉該權(quán)限。 2. 蘋果用戶需使用非中國(guó)大陸Apple ID(如美國(guó)或香港地區(qū)),在App Store中登錄該ID後搜索並下載“Binance”官方應(yīng)用,安裝後可切換回原Apple ID。 3. 下載後務(wù)必啟用雙重驗(yàn)證(2FA)並保持應(yīng)用更新,以保障賬戶安全。整個(gè)過程必須通過官方途徑操作,避免點(diǎn)擊不明鏈接。

以太坊(Ethereum)是一個(gè)基於區(qū)塊鏈技術(shù)的去中心化開源平臺(tái),它允許開發(fā)者構(gòu)建和部署智能合約和去中心化應(yīng)用。其原生加密貨幣為以太幣(ETH),是全球市值領(lǐng)先的數(shù)字貨幣之一。

歐意(Ouyi)APP是一款專業(yè)的數(shù)字資產(chǎn)服務(wù)平臺(tái),致力於為全球用戶提供安全、穩(wěn)定且高效的交易體驗(yàn)。本文將詳細(xì)介紹其官方版v6.129.0的下載方式與核心功能,幫助用戶快速上手。該版本在用戶體驗(yàn)、交易性能和安全性方面進(jìn)行了全面升級(jí),旨在滿足不同層次用戶的多樣化需求,讓用戶可以便捷地管理和交易其數(shù)字資產(chǎn)。

使用Yandex查找?guī)虐补俜角罆r(shí),必須通過搜索“幣安官網(wǎng)”或“Binance official website”精準(zhǔn)定位官方網(wǎng)站;2. 進(jìn)入官網(wǎng)後,在頁眉或頁腳找到“下載”或“App”入口,遵循官方指引通過應(yīng)用商店下載或獲取官方驗(yàn)證的安裝文件;3. 全程避免點(diǎn)擊廣告或第三方鏈接,確保域名正確且鏈接可信,以保障下載安全。
