Blazor Web Assembly-在RCL中访问图像

问题描述

我是Blazor的新手,所以这也许很明显,但我无法弄清楚。我有一个WebAssembly项目和一个单独的Razor类库,其中包含一些组件。我有一个想要插入图像的组件-将图像放在库的wwwroot / img文件夹中,并按以下方式访问

 <img src="/img/logo.png" alt="test logo" />

但是它不会显示-我已经尝试

<img src="_content/img/logo.png" alt="test logo" />

但是它也不会显示

我可以显示图像的唯一方法是将其放入客户端项目的wwwroot / img文件夹中。但是我希望我的组件库能够在其他项目中使用。

任何指导非常感谢。我来自Windows Forms背景,所以我有很多东西要学习:)

解决方法

我也是Web开发的新手,但afaik的wwwroot文件夹用作网页使用的静态文件的文件夹(出于我的理解,出于安全原因,这也是浏览器可以访问媒体文件的唯一文件夹)。

几天前我遇到了同样的问题,我通过将所有内容都放到wwwroot文件夹中解决了这个问题,但是我也发现了一篇文章,其中提出了另一种建议。

http://blog.vivensas.com/static-image-in-blazor-inside-and-outside-web-root/

基本上建议在Startup.cs文件中创建一个方法,该方法将能够从其他位置获取图像:

public void  Configure(IApplicationBuilder  app,IWebHostEnvironment env)
{
    app.UseStaticFiles();

    app.UseStaticFiles( new StaticFileOptions
    {
        FileProvider = new  PhysicalFileProvider(
        Path. Combine(Directory . GetCurrentDirectory(),“StaticFilesFolder” )),RequestPath = “/StaticFiles”
    });
}

然后,您可以像这样使用图像:

@page “/”
<h3> Display Image in Blazor</h3>
<div>
    <img  src=”/StaticFiles/Image/OutsideWebRoot.png”  />
</div>
@code {
}

编辑:也许我误解了您的问题,要使其正常工作,它也必须存在于客户端项目中。除了客户项目之外,我不知道从其他解决方案中获取图像的方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...