0

我是 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 窗体背景,所以我有很多东西要学:)

4

1 回答 1

1

我也是 Web 开发的新手,但是 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 {
}

编辑:也许我误解了你的问题,为了让它工作,它也必须在客户项目中。我不知道从客户端项目以外的其他解决方案获取图像的方法。

于 2020-09-03T11:59:30.010 回答