[英]Serving embeded static files with Nancy 2.0 (clinteastwood)
我正在嘗試通過Nancy在文件夾assets
提供靜態資產。 這是我在Bootstrapper中使用的代碼:
protected override void ConfigureConventions(NancyConventions nancyConventions)
{
var assets = EmbeddedStaticContentConventionBuilder.AddDirectory(
"/assets", GetType().Assembly);
nancyConventions.StaticContentsConventions.Add(assets);
base.ConfigureConventions(nancyConventions);
}
我已將文件(project root)/assets/test.css
標記為嵌入式資源。 但是,當我啟動服務器並訪問localhost:5000/assets/test.css
出現404錯誤。
應該注意的是,我在OS X Sierra上運行dotnet core 2.0-preview2-final。
我在Nancy Slack頻道中與@inqonsole(Kevin Boon)進行了交談,他讓我嘗試了一個在他的機器上工作的項目,該機器是一個不同的平台。 還是沒用。 可能是Nancy-Embedded中的一個錯誤(我將其歸檔在他們的Github上)。 他建議改用Kestrel服務嵌入式文件。 這是在Startup類中:
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new EmbeddedFileProvider(typeof(Startup).Assembly, typeof(Startup).Namespace + ".assets"),
RequestPath = new PathString("/assets")
});
}
您需要在項目中具有來自NuGet的Microsoft.AspNetCore.StaticFiles
和Microsoft.Extensions.FileProviders.Embedded
軟件包。
為了完整起見(對於像我這樣的其他dotnet核心菜鳥),這是Program.cs的主要功能:
static void Main(string[] args)
{
IWebHost webHost = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.Build();
webHost.Run();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.