在 blazor 托管项目中提供静态文件

Serve static files in blazor hosted project

这是一个非常简单的任务,我想在位于 wwwroot/css/images 的剃刀页面中使用图像,并像这样在 html 中使用它。

<img src="~/css/images/logo.png"/>

在正常的 ASP.Net 核心应用程序中,我会在 Configure 方法中添加 app.UseStaticFiles(),但由于这是一个 blazor 托管的应用程序,它没有任何改变。

我也尝试在服务器项目中添加 app.UseStaticFiles(),但也没有成功。

如果您想自己尝试一下,只需从模板创建一个 blazor 托管的项目,然后像我一样尝试 serve/display 图片。

Blazor 可以很好地处理静态文件。您遇到的问题是您用来引用文件的语法。您只需要删除 ~ 符号。

<img src="/css/images/logo.png" />

一个精确度...任何东西的静态文件根目录 在 blazor 中从 wwwroot 文件夹开始。 wwwroot 是 简单地被认为是理所当然的,在实际中被省略 您需要用来请求静态文件的路径。使用 :

"/css/images/logo.png"

也可以表示为:

"css/images/logo.png"..我很确定。

如果您在 Razor Class Libray...还有一个 wwwroot 用于 Razor Class 库本身。使用时是 Blazor Wasm 客户端 RCL 中任何静态文件的文件路径变为:

"_content/[RCL 程序集名称]/css/images/logo.png"

请注意,即使对于 类 以及您在 Razor Class 库本身中实现的内容, 即使你在那个定义东西的库中......静态文件 在你自己的 wwwroot 里面的 Razor Class 库被调用使用 “_content/[RCL 程序集名称]”前缀。