asp.net core 2.2中的wwwroot文件夹

时间:2019-03-03 15:27:14

标签: asp.net-core wwwroot

我刚刚创建了一个新的ASP.NET Core Web应用程序,并选择了一个空的项目模板。我正在使用Visual Studio Community 15.7.1。

在第一次查看解决方案资源管理器时,我看不到那里的“ wwwroot”文件夹。有人碰巧知道如果使用asp.net core 2.2,wwwroot不再可见?

我检查了文档,但找不到任何东西。创建另一个文件夹并从那里提供我的静态文件没有问题,但是我很好奇。

谢谢。

4 个答案:

答案 0 :(得分:7)

手动创建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文件夹重命名为内容,则也可以按照示例进行重命名

我们需要调用UseWebRoot()方法来将Content文件夹配置为Program类的Main()方法中的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>();
}

答案 1 :(得分:2)

尝试将新文件夹添加到项目中,并将其命名为wwwroot。它的外观应带有适当的图标,并可以按预期工作。当我使用空项目模板时,.NET Core Web应用程序总是会发生这种情况。这发生在VS 2017 v15.9.3.

答案 2 :(得分:1)

您必须手动添加文件夹,然后将其重命名为wwwwroot。 vs将其检测为午餐文件夹

答案 3 :(得分:1)

对于将来的读者:

A。读这个 ! https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1(或阅读shiram的出色答案,简要总结一下!)

B。 (更实用)。您需要在“ wwwroot”文件夹中放入某种文件。并将其标记为“始终复制”或“如果更新则复制”。

示例:(典型的“休息” 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之间没有区别。