我刚刚创建了一个新的ASP.NET Core Web应用程序,并选择了空项目模板。我使用的是Visual Studio Community 15.7.1。
初次查看解决方案资源管理器时,我发现没有“wwwroot”文件夹。是否有人知道在 ASP.NET Core 2.2 中“wwwroot”不再可见?
我检查了文档,但没有找到任何相关信息。我可以创建另一个文件夹并从那里提供静态文件,但我只是好奇。
先谢谢了。
我刚刚创建了一个新的ASP.NET Core Web应用程序,并选择了空项目模板。我使用的是Visual Studio Community 15.7.1。
初次查看解决方案资源管理器时,我发现没有“wwwroot”文件夹。是否有人知道在 ASP.NET Core 2.2 中“wwwroot”不再可见?
我检查了文档,但没有找到任何相关信息。我可以创建另一个文件夹并从那里提供静态文件,但我只是好奇。
先谢谢了。
试着在项目中添加一个名为wwwroot
的新文件夹。它应该具有正确图标并按预期工作。当我使用空项目模板创建 .NET Core Web 应用程序时,这种情况总是发生在我身上。这发生在VS 2017 v15.9.3
版本中。
在手动创建wwwroot文件夹后,我们需要在Startup文件的Configure()方法中添加staticFile中间件,如下所示,以便提供静态文件服务。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//Adding static file middleware
app.UseStaticFiles();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
我们还可以将默认的wwwroot文件夹重命名为我们想要的名称。例如,如果我们想将其重命名为content,
我们需要在Program类的Main()方法中调用UseWebRoot()方法,以将Content文件夹配置为Web根文件夹,如下所示。
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseWebRoot("Content")
.UseStartup<Startup>();
}
你必须手动添加文件夹,然后将其重命名为wwwwroot
,以便将其检测为启动文件夹。
未来的读者:
A. 阅读此链接! https://learn.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1 (或者阅读 shiram 的简要答案!)
B.(更实用)。您需要将某种文件放入“wwwroot”文件夹中。并将其标记为“始终复制”或“仅在新建时复制”。
示例:(典型的“rest” aspnetcore 项目)
bin
Controllers
Controllers\ValuesController.cs
obj
Program.cs
Startup.cs
MyCompany.MyTechnology.MyProject.csproj
MyCompany.MyTechnology.MyProject.csproj.user
wwwroot
wwwwroot\StaticContentExampleOne.txt
(将"StaticContentExampleOne.txt"标记为"始终复制"或"仅在较新"时复制)
现在您应该获取到wwwroot文件夹
例如:
"bin\debug\netcoreapp3.1\wwwroot"
并且
"bin\debug\netcoreapp3.1\wwwroot\StaticContentExampleOne.txt"
在这种情况下,我认为2.x和3.x之间没有区别。
wwwroot
文件夹、controllers
文件夹、models
文件夹等文件夹。 - TanvirArjel