ANi*_*sus 0 c# webserver .net-core
我写了一个关于如何使用尽可能少的行和文件为 .NET Core 编写一个简单的静态文件服务器的问题。
它被标记为重复的ASP.NET Core - 服务静态文件。所以我的问题是:
是这个答案真的简单的.NET核心静态文件的Web服务器可能吗?我是否理解正确(我试图将各种来源的信息拼凑在一起)?
启动文件
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
namespace StaticFileServer {
public class Startup{
public void Configure(IApplicationBuilder app){
app.UseDefaultFiles();
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\dist"))
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
主文件
using System;
using Microsoft.AspNetCore.Hosting;
namespace StaticFileServer
{
class Program
{
static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
如果使用顶级语句、全局 using 指令和最小托管模型更简单:
创建 ASP.NET Core 空项目
dotnet new web
Run Code Online (Sandbox Code Playgroud)
更改(如果不存在则创建)Program.cs为
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDirectoryBrowser();
var app = builder.Build();
app.UseFileServer(enableDirectoryBrowsing: true);
app.Run();
Run Code Online (Sandbox Code Playgroud)
运行。您可以使用命令行或类似方式更改主机配置值。例如:urlswebroot
dotnet run -- webroot="C:/your-path/" urls="http://127.0.0.1:1234"
Run Code Online (Sandbox Code Playgroud)
注意:要提供非标准内容类型,可能会返回 404。您需要通过以下方式添加额外的配置:
app.UseFileServer(new FileServerOptions()
{
EnableDirectoryBrowsing = true,
StaticFileOptions =
{
ServeUnknownFileTypes = true,
DefaultContentType = "application/octet-stream"
}
});
Run Code Online (Sandbox Code Playgroud)
将代码放在一起,我发现的用于从该位置提供静态文件的最简单的完整应用程序如下:
class Program
{
static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args)
.Configure(config => config.UseStaticFiles())
.UseWebRoot("wwwroot/dist").Build().Run();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想让事情保持轻松,则可以包括Microsoft.AspNetCore,Microsoft.AspNetCore.Hosting和Microsoft.AspNetCore.StaticFiles。或者为了快速设置,您可以只安装一个包Microsoft.AspNetCore.All。
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |