私はNancyFXを初めて使用し、現在、Web アプリケーション開発に対する控えめなアプローチに魅了されています。深淵に身を投じて、 CoffeeScriptを使用してSassの利点も調査したいと考えて います。
セットアップ
この組み合わせを有効にするために、VS2010 テンプレート ( Nancy Accessoriesプロジェクトにあります) を使用して新しい空の Web アプリケーションを作成しました。次に、VS PackageManager を使用してアプリケーションを Nancify し、SassAndCoffee サポートを追加しました。
PM> Install-Package Nancy
PM> Install-Package Nancy.SassAndCoffee
ここまでは順調ですね。次に、~/Content/scriptsフォルダーを作成し、そこに次の CoffeeScript 行を含むhome.coffeeというファイルを配置しました。
alert "Hello Nancy!"
今、物事は少しあいまいになり始めています。このスクリプトをクライアントで実行したいので、~/Views/home.sshtmlというビューを作成します(および NancyModule を Get["/"] ルートに関連付けます - 表示されていません)。ビューの html は次のようになります。
<head>
<title>Hello Nancy</title>
<script type="text/javascript" src="/content/scripts/home.js"></script>
</head>
<body>
<p>Hello @Model.User</p>
</body>
</html>
ビューは問題なく動作しますが、home.jsファイルへのリンクは 404: Not Found を返すだけです。
参照されているhome.jsファイルを探して代わりにhome.coffeeを見つけたときに、CoffeeScript を JavaScript にコンパイルする必要があることをナンシーが魔法のように解決してくれることを願っています。これはうまくいきませんでした。
代わりに既存のhome.coffeeを指すように上記のスクリプト タグを変更すると、ファイルは検出されますが、通常の JavaScript ファイルとして処理され、面倒な式がないことに関するエラーが発生します。つまり、「予期しない文字列」です。
質問
これで、私のセットアップと簡単な要件がわかったので、ここで私の質問です。
NancyFX フレームワークを使用して CoffeeScript を「正常に動作させる」にはどうすればよいですか?
ありがとうございました
アップデート
Steven Robbins (以下) は、デモ コードを示してこの質問に答えています。ただし、GitHub から何 MB ものソースを取得したくない場合に備えて、作業を進めるために必要な行を次に示します。最初に Bootstrapper.cs というクラスをプロジェクトに追加します。次に、次のコードを追加します(私にとっては魅力的でした):
public class Bootstrapper : DefaultNancyBootstrapper
{
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
base.ApplicationStartup(container, pipelines);
StaticConfiguration.DisableErrorTraces = false;
Hooks.Enable(pipelines, new InMemoryCache(), container.Resolve<IRootPathProvider>());
}
}