2017-08-17 14 views
0

Nancyからフォルダassetsに静的資産を提供しようとしています。ここで私はブートストラップに使用していますコードは次のとおりです。Nancy 2.0(clinteastwood)で埋め込まれた静的ファイルを処理する

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を実行していることに注意してください。

+0

は、コンテンツに資産をremaneとコード – Linefinc

+0

を削除するようにしてください私はまだいませんよ'/ test.css'または'/Content/test.css'を通してファイルにアクセスすることができます。私は静的リソースを埋め込むことを望んでいるという点でタイトルに注意してください。 – eltiare

+0

私は同じ問題を抱えていました。ブローカにリソースを追加するのが速い方法です – Linefinc

答えて

1

ナンシー・スラック・チャンネルで@inqonsole(Kevin Boon)と話しましたが、私は別のプラットフォームである彼のマシンで動作するプロジェクトを試してみました。まだ動作しませんでした。おそらくNancy-Embeddedのバグでしょう(私は彼らのGithubにファイルします)。彼は代わりにKestrelを使用して埋め込みファイルを提供することを提案しました。これは、スタートアップクラスである:

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(); 
    } 
関連する問題