net Blazor的默认目录结构必须保留吗



我对使用C#和blazor非常陌生。(我确实有使用Svelte、react和其他框架的经验。但没有使用C#的经验。

我很好奇是否/如何从运行dotnet new blazorwasm时提供的模板化结构创建自己的文件夹结构。

.vscode/
bin/
obj/
Pages/
Properties/
Shared/
wwwroot/
_Imports.razor
Program.cs
Program.csproj
Project.sln

按照微软的教程,他们只是把脚本放在根文件夹中,我不喜欢。

如有任何建议,不胜感激!

编辑:@andrew wynn好的,我理解。但在wwwroot文件夹之外,我可以将文件夹移到其他文件夹中吗?比如PagesShared,其中包含剃刀组件文件?像这样的东西?因为据我所知,我没有看到任何东西将它们直接联系在一起。如果我理解正确的话,看起来所有的东西都是通过名称空间链接的。

.vscode/
bin/
obj/
Pages/
Properties/
Shared/
wwwroot/
_Imports.razor
Program.cs
Program.csproj
Project.sln

wwwroot是站点的根目录,因此它是所有源文件的所在地。只要它们被引用链接,它们就可以进入其中的子目录。

如果你愿意的话,你可以制作一些中间件来使用不同的文件夹,请参阅[this link][1]

编辑:

因此,Blazor项目中的每个文件夹都用于一组特定的文件。Pages用于.blazor和.cs.html文件,这些文件不存在于面向公众的网站上,因为它们在请求时会动态转换为html。

我不完全确定你想干什么。文件夹结构被硬编码到服务器主机应用程序中。静态组件(javascript、css、html、image等(都进入wwwroot,因为客户端可以直接访问它们,内容由ASP动态生成。NET或Blazor在Pages中,您的类等在Data中。。。您只想重命名这些文件夹吗?。[1] :JS www根文件夹外的文件

我已经想通了。是的,你可以随心所欲地构建它。您只需要确保更新_imports.razor文件以引用新位置。

因此,如果我将所有内容都移到Source文件夹中,我将需要更新。

@using MyProject.Shared
//TO
@using MyProject.Source.Shared

然后确保添加任何需要引用的新文件。

是的,您可以移动文件夹。最好用一个例子来说明。如果我们想将PagesSharedwwwroot移动为子文件夹,如下所示:

View/
Pages
Shared
wwwroot

然后在program.cs中,您有以下修改:

var builder = WebApplication.CreateBuilder(new WebApplicationOptions {
WebRootPath = Path.Combine("View", "wwwroot")
});
builder.Services.AddRazorPages(options => { options.RootDirectory = "/View/Pages"; });

_Imports.razor

@using YourAppName.View
@using YourAppName.View.Pages
@using YourAppName.View.Shared

相关内容

  • 没有找到相关文章

最新更新