wwwroot folder in asp.net core 2.2

前端 未结 4 1964
深忆病人
深忆病人 2020-12-14 06:12

I have just created a new ASP.NET Core web application and selected an empty project template. I am using Visual Studio Community 15.7.1.

Upon a first look at the so

相关标签:
4条回答
  • 2020-12-14 06:21

    you must add folder manually and then rename it to wwwwroot. vs detect it as launch folder

    0 讨论(0)
  • 2020-12-14 06:30

    For future readers:

    A. Read this ! https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1 (Or read shiram's excellent answer which briefly sums it up!)

    B. (More practical). You need to put some kind of file inside the "wwwroot" folder. And mark it as "Copy Always" or "Copy If Newer".

    Example: (typical "rest" aspnetcore project)

    bin
    Controllers
    Controllers\ValuesController.cs
    obj
    Program.cs
    Startup.cs
    MyCompany.MyTechnology.MyProject.csproj
    MyCompany.MyTechnology.MyProject.csproj.user
    wwwroot
    wwwwroot\StaticContentExampleOne.txt
    

    (Mark "StaticContentExampleOne.txt" as "Copy Always" or "Copy If Newer")

    Now you should get the wwwroot folder

    example:

    "bin\debug\netcoreapp3.1\wwwroot"
    

    and

    "bin\debug\netcoreapp3.1\wwwroot\StaticContentExampleOne.txt"
    

    I don't there is a difference between 2.x and 3.x in this scenario.

    0 讨论(0)
  • 2020-12-14 06:36

    After manually creating the wwwroot folder, we need to add the staticFile middle-ware in the Configure() method of Startup file as shown below inorder to serve the static file.

    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!");
            });
        }
    

    We can also rename the default wwwroot folder as we want for an example, if we want to rename it as content

    we need to call UseWebRoot() method to configure Content folder as a web root folder in the Main() method of Program class as shown below.

    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>();
    }
    
    0 讨论(0)
  • 2020-12-14 06:40

    Try adding a new folder to the project and call it wwwroot. It should take on the appearance with the proper icon and work as expected. This always happens to me with .NET Core web apps when I use the empty project template. This is occurring in VS 2017 v15.9.3.

    0 讨论(0)
提交回复
热议问题