Ver código fonte

fix(tauri/asset): better no-server image loading (#1170)

Noah Klayman 4 anos atrás
pai
commit
56757b5e83
2 arquivos alterados com 12 adições e 8 exclusões
  1. 1 5
      cli/core/src/templates/tauri.js
  2. 11 3
      tauri/src/endpoints/asset.rs

+ 1 - 5
cli/core/src/templates/tauri.js

@@ -141,11 +141,7 @@ if (!String.prototype.startsWith) {
     function (e) {
       var target = e.target
       while (target != null) {
-        if (
-          target.matches
-            ? target.matches('img')
-            : target.msMatchesSelector('img')
-        ) {
+        if (target.matches('img')) {
           window.__TAURI__.loadAsset(target.src, 'image').then(function (img) {
             target.src = img
           })

+ 11 - 3
tauri/src/endpoints/asset.rs

@@ -46,16 +46,24 @@ pub fn load(
       }
 
       if asset_type == "image" {
-        let ext = if asset.ends_with("gif") {
+        let mime_type = if asset.ends_with("gif") {
           "gif"
+        } else if asset.ends_with("apng") {
+          "apng"
         } else if asset.ends_with("png") {
           "png"
+        } else if asset.ends_with("avif") {
+          "avif"
+        } else if asset.ends_with("webp") {
+          "webp"
+        } else if asset.ends_with("svg") {
+          "svg+xml"
         } else {
           "jpeg"
         };
         Ok(format!(
-          r#""data:image/{};base64,{}""#,
-          ext,
+          r#"data:image/{};base64,{}"#,
+          mime_type,
           base64::encode(&read_asset.expect("Failed to read asset type").into_owned())
         ))
       } else {