Html 为什么从blob存储链接时SVG图像不显示?
我有一个blazor WASM站点,我正试图直接从blob存储中显示SVG图像。我试过使用Html 为什么从blob存储链接时SVG图像不显示?,html,azure,svg,azure-storage-blobs,azure-cdn,Html,Azure,Svg,Azure Storage Blobs,Azure Cdn,我有一个blazor WASM站点,我正试图直接从blob存储中显示SVG图像。我试过使用 <img src="https://rmssdstorage.blob.core.windows.net/mixandswirlimages/cbf53722-5889-4100-8c2e-30b8500e1a3d.svg" height="300"/> 但这会导致图像链接中断。您可以在服务器上看到此图像:您可以通过单击以下链接下载它: 我也试过使
<img src="https://rmssdstorage.blob.core.windows.net/mixandswirlimages/cbf53722-5889-4100-8c2e-30b8500e1a3d.svg" height="300"/>
但这会导致图像链接中断。您可以在服务器上看到此图像:您可以通过单击以下链接下载它:
我也试过使用
<img src="https://rmssdstorage.blob.core.windows.net/mixandswirlimages/cbf53722-5889-4100-8c2e-30b8500e1a3d.svg" height="300"/>
但这似乎会导致图像下载到您的设备上(但仍不会导致图像显示在页面上)
如果我链接到另一个来源的图像,它会显示:
<img src="https://upload.wikimedia.org/wikipedia/commons/8/8c/Aperiodisk-v%C3%A4xelstorhet.svg" height="300" />
为什么我可以显示来自其他站点的图像,但无法从我的Azure CDN Blob存储中显示它们,即使这些图像可以公开访问?我怀疑您可能需要设置Blob的内容类型。默认情况下,它是
应用程序/octet流
。请参见我怀疑您可能需要设置blob的内容类型。默认情况下,它是应用程序/octet流
。请参见以下步骤:
转到azure门户->您的存储帐户->在左侧刀片中,单击存储资源管理器(预览)
->然后找到.svg图像->右键单击它并在Blob属性
页面中选择属性
->,检查内容类型
:如果它不是图像/svg+xml
,请将其设置为image/svg+xml
,然后单击Save
按钮
以下是步骤的屏幕截图:
顺便说一下,您也可以使用来完成此操作。请按照以下步骤操作: 转到azure门户->您的存储帐户->在左侧刀片中,单击
存储资源管理器(预览)
->然后找到.svg图像->右键单击它并在Blob属性
页面中选择属性
->,检查内容类型
:如果它不是图像/svg+xml
,请将其设置为image/svg+xml
,然后单击Save
按钮
以下是步骤的屏幕截图:
顺便说一下,您也可以使用来完成此操作。谢谢。这确实可以显示图像,现在我知道这是问题所在,我可以在代码中设置此属性:`if(isSVG){buffer=Encoding.UTF8.GetBytes(file);//SVG存储为纯文本。var fileContent=new ByteArrayContent(buffer);fileContent.Headers.ContentType=MediaTypeHeaderValue.Parse(“image/svg+xml”);form.Add(fileContent,“image”,fileName);等待Http.PostAsync(“api/HttpStreamReceiver”,form);}`谢谢。这确实可以显示图像,现在我知道这是问题所在,我可以在代码中设置此属性:`if(isSVG){buffer=Encoding.UTF8.GetBytes(file);//SVG存储为纯文本。var fileContent=new ByteArrayContent(buffer);fileContent.Headers.ContentType=MediaTypeHeaderValue.Parse(“image/svg+xml”);form.Add(fileContent,“image”,fileName);等待Http.PostAsync(“api/HttpStreamReceiver”,form);}`谢谢。这确实是问题所在,现在我知道这是问题所在,我可以在代码中设置此属性:
if(isSVG){buffer=Encoding.UTF8.GetBytes(file);//svg存储为明文。var fileContent=new ByteArrayContent(buffer);fileContent.Headers.ContentType=MediaTypeHeaderValue.Parse(“image/svg+xml”);form.Add(fileContent,“image”,fileName);wait Http.PostAsync(“api/HttpStreamReceiver”,form);}
谢谢。这确实是问题所在,现在我知道这是问题所在,我可以在代码中设置此属性:if(isSVG){buffer=Encoding.UTF8.GetBytes(file);//SVG以明文形式存储。var fileContent=new ByteArrayContent(buffer);fileContent.Headers.ContentType=MediaTypeHeaderValue.Parse(“image/svg+xml”);form.Add(fileContent,“image”,fileName);等待Http.PostAsync(“api/HttpStreamReceiver”,form);}