簡體   English   中英

使用Nancy 2.0(clinteastwood)提供嵌入的靜態文件

[英]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.StaticFilesMicrosoft.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM