问题描述
我开始使用 Blazor
服务器端,但我没有得到正确的路由.我不明白 _host.cshtml
中需要 base
标记.如果我仍然需要在每个 Blazor 组件中添加 base
url,例如:我想要一个 /app/
的基地址和 @page<值为
"/counter"
的示例 Counter
的/code> 指令不会编译"为 "/app/counter"
.我必须将 @page
设置为 "/app/counter"
这很有意义,但这意味着 _host 中的
没用...base
标记.cshtml
我在这里做错了什么?
解决方案
<base href='' >
是一个
I am getting started with
Blazor
server-side and I don't get the routing right. I don't understand the need for the base
tag in _host.cshtml
. If I still have to add the base
url in every Blazor component, for example: I want to have a base address of /app/
and the @page
directive for the example Counter
with a value of "/counter"
does not "compile" to "/app/counter"
. I have to set the @page
to "/app/counter"
which makes sense but that means that the base
Tag in _host.cshtml
is useless...
What am I getting wrong here?
解决方案 The <base href='' >
is a client side technology that specifies the base URL for all relative URLs in current document. Many SPA frameworks , e.g. Angular, will use this element.
I have to set the @page to "/app/counter"
Actually, you don't have to and should never do that. One of the most important advantages when using <base>
is that it allows us to create an app without letting the components know about the base url.
Assuming you've changed the base href
from '/' to '/app/', and also changed the other relative urls:
Don't forget to prepend the default Blazor
Hub url with a /app/
:
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub("/app/_blazor");
endpoints.MapFallbackToPage("/_Host");
});
That's all. There's no need to change the routes from @page "/counter"
to @page "/app/counter"
at all.
Demo
Here's a demo that we don't change the @page
routes for components:
这篇关于.razor 文件中的 Blazor 基本标记和 @page 指令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!