メインメニューを開く

差分

Nancy/静的コンテンツを扱う

445 バイト追加, 2016年5月30日 (月) 01:10
編集の要約なし
Nancyでは初期状態でJavaScriptやCSSなどの静的コンテンツは除外されてしまい問答無用で404 [[Nancy]]では初期状態で[[JavaScript]]や[[CSS]]などのプロジェクトに含まれる静的コンテンツは除外されてしまい問答無用で404 Not Foundを返してくる。
どうしろと。
==解決策(仮)==
DefaultNancyBootstrapperを継承したクラスをプロジェクトの直下においておくと勝手に読み込まれる模様。DefaultNancyBootstrapperクラスを継承したクラスをプロジェクトの直下においておくと勝手に読み込まれる模様。
そしてその中のConfigureConventionsメソッドを上書きして、以下のように静的コンテンツのあるディレクトリを書きまくれば解決した。
サブディレクトリも対象になるようだ。
base.ConfigureConventions(conventions);
// ここに追記する
// サブディレクトリも勝手に追加されている模様
conventions.StaticContentsConventions.Add(
StaticContentConventionBuilder.AddDirectory("Scripts", @"Scripts")
);
conventions.StaticContentsConventions.Add(
StaticContentConventionBuilder.AddDirectory("Content", @"Content")
);
}
StaticContentConventionBuilder.AddDirectoryの書式は以下のような感じだと思う。
公開名がURLの一部となる部分で、公開ディレクトリがXamarin Studioのプロジェクト上のディレクトリになる。公開名がURLの一部となる部分で、公開ディレクトリが[[Xamarin Studio]]のプロジェクト上のディレクトリになる。
「公開名」と「公開ディレクトリ」を同一にしておけば扱いやすいと思う。
本当にこれでいいのかは知らん。
StaticContentConventionBuilder.AddDirectory(公開名, 公開ディレクトリ)
</source>
 
== 関連項目 ==
* [[Nancy]]
 
== 参考文献 ==
{{reflist}}
{{stub}}
 
[[category: ASP.NET]]
[[category: Nancy]]
匿名利用者