我刚刚创建了一个新的 ASP.NET Core Web 应用程序并选择了一个空的项目模板。我正在使用 Visual Studio 社区 15.7.1。
第一次查看解决方案资源管理器时,我看不到那里没有“wwwroot”文件夹。有谁碰巧知道使用 asp.net core 2.2 时 wwwroot 是否不再可见?
我检查了文档,但找不到任何东西。创建另一个文件夹并从那里提供我的静态文件没有问题,但我只是好奇。
提前致谢。
我刚刚创建了一个新的 ASP.NET Core Web 应用程序并选择了一个空的项目模板。我正在使用 Visual Studio 社区 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 文件夹
我们需要在 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
. vs 将其检测为启动文件夹
对于未来的读者:
A. 读这个! https://docs.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 之间的区别。