我对使用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
文件夹之外,我可以将文件夹移到其他文件夹中吗?比如Pages
或Shared
,其中包含剃刀组件文件?像这样的东西?因为据我所知,我没有看到任何东西将它们直接联系在一起。如果我理解正确的话,看起来所有的东西都是通过名称空间链接的。
.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
然后确保添加任何需要引用的新文件。
是的,您可以移动文件夹。最好用一个例子来说明。如果我们想将Pages
、Shared
和wwwroot
移动为子文件夹,如下所示:
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