c# - 在 ASP.NET Core Web 应用程序(IdentityServer 项目)中使用共享库中的 Blazor 组件
问题描述
最近我创建了一个新的 Blazor Webassembly 项目,包括身份验证(个人用户帐户)和托管的 ASP.NET Core。这为我生成了 3 个项目,即:客户端(Blazor Webassembly)、服务器(身份验证内容所在的位置,使用 Identityserver - 看起来像使用 MVC / Razor 的 ASP.NET Core Web 应用程序模板)和一个共享项目。
我希望我的所有组件都可以轻松重用,因此我还创建了一个Razor Class Library
我的(Blazor)组件所在的位置。
在这个共享库中,我创建了一些组件,我也在我的 Webassembly 项目中使用了这些组件,这一切都很好。
但是,我也想在 Server 项目中使用这些组件。然而,这并不容易。我使用此链接尝试了以下操作:https ://medium.com/@geobourno/bringing-blazor-in-an-existing-net-core-mvc-project-d605d9f9ebe8
- 我在服务器项目的文件中添加了
services.AddServerSideBlazor();
和endpoints.MapBlazorHub();
startup.cs
- 我在我的: 中添加了对
blazor.server.js
和的引用:<base href="/">
_Layout.cshtml
- 我添加了对共享组件库的引用
- 我不确定以下内容,在链接/教程中,他们要么添加对 Blazor 应用程序的引用(而我的实际上是 Razor 类库),要么在另一种情况下添加
_Imports.razor
文件。我选择了后者(创建一个_Imports.razor
包含权限的文件usings
) - 接下来,我在现有
.cshtml
文件中从共享库中添加了一个组件,如下所示:<component type="typeof(MarketingPage)" render-mode="ServerPrerendered" />
以及在同一页面中对共享库的使用:@using PCS2.ComponentsLibrary.Index
在这些步骤之后有几个问题。
正在显示 html / 组件,但未显示相应
CSS
的。我假设当我引用我的共享组件库时,它还会包含我的共享组件库中的 css 文件wwwroot
。我认为添加对样式表的引用如下可以解决问题(但遗憾的是它没有):<link href="_content/PCS2.ComponentsLibrary/css/TailwindStyles.css" rel="stylesheet" />
<link href="_content/PCS2.ComponentsLibrary/css/CustomStyles.css" rel="stylesheet" />
检查时我可以看到文件没有被加载:
这些 css 文件位于wwwroot
我的组件类库中:
- 添加组件后会生成几个 blazor.server.js 错误:
任何线索我怎样才能让它工作?
解决方案
推荐阅读
- python - 如何从单独的机密配置文件访问由 wfastcgi 设置的环境变量
- python - Django CMS:创建页面时设置默认占位符值
- android - react-native:运行expo弹出后项目未构建
- shell - 使用 shell 脚本的 O365 收件箱中的邮件计数
- r - R:当一个值出现超过 75% 的时间时,将组中的每个值设置为 NA
- javascript - 查找并禁用
- c - 反向 Jenkins 的一次一个哈希
- angular - 无法将数据放入 MEAN 应用程序
- python - 在python3 vs python2中将参数传递给ctypes函数
- apache-spark - 为什么文件接收器没有完整的模式?