?-6ren"> ?-在每个Blazor项目中,或index.html(取决于您使用的是Blazor WebAssembly还是Blazor Server)中都有一个_Host.razor。 现在,我知道了what thi-6ren">
gpt4 book ai didi

blazor - 为什么Blazor的index.html或_Host.razor文件中存在

转载 作者:行者123 更新时间:2023-12-03 16:10:13 26 4
gpt4 key购买 nike

在每个Blazor项目中,<base href="/">index.html(取决于您使用的是Blazor WebAssembly还是Blazor Server)中都有一个_Host.razor
现在,我知道了what this tag does,只要将其href属性内的任何值添加到HTML文档中的每个相对路径之前即可。
但是,我不明白为什么默认将它放在每个Blazor项目中。例如,如果您使用的是Blazor WebAssembly,则在index.html文件的末尾有以下行:

<script src="_framework/blazor.webassembly.js"></script>
显然,此路径的开头没有 /,因为文档中存在 <base href="/" />,但是为什么他们不能只是简单地在该路径中添加前导 /以完全消除对 base标记的需要呢?为什么要添加基本标签?
我还尝试过手动删除 <base href="/" />标记,而是将前导 /添加到所有路径,但是随后我很快发现这样做会导致问题:
如果您的页面具有类似 /counter/something(两个以上级别)的路径,则 blazor.webassembly.js文件(在加载后会动态将其他所需的JS文件和程序集添加到HTML页面中),并且不带斜杠地添加它们,并且基本上假定有一个 <base href="/" />
例如, blazor.webassembly.js加载具有此路径“_framework/blazor.boot.json”的文件。但是在像我刚才解释的那样的情况下,这将导致404错误,因为这是相对路径,并且没有“/counter/_framework/blazor.boot.json”。
因此,这基本上意味着在每个Blazor应用程序中实际上都必须拥有 <base href="/" />!但为什么?!

最佳答案

here

The app base path is the app's root URL path. Consider the followingASP.NET Core app and Blazor sub-app:

Without specifying additional configuration for CoolApp, the sub-app in this scenario has no knowledge of where it resides on the server. For example, the app can't construct correct relative URLs to its resources without knowing that it resides at the relative URL path /CoolApp/.

关于blazor - 为什么Blazor的index.html或_Host.razor文件中存在<base href ="/"/>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64450350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com