我是NancyFX的新手,目前被其低俗的 Web 应用程序开发方法迷住了。深入研究,我还想使用 CoffeeScript并研究Sass的好处。
设置
为了启用这种组合,我使用 VS2010 模板(在Nancy Accessories项目中找到)创建了一个新的 Empty Web 应用程序。然后我使用 VS PackageManager 对我的应用程序进行 Nancify 并添加 SassAndCoffee 支持:
PM> Install-Package Nancy
PM> Install-Package Nancy.SassAndCoffee
到现在为止还挺好。然后我创建了一个~/Content/scripts文件夹,并在其中放置了一个名为home.coffee的文件,其中包含以下 CoffeeScript 行。
alert "Hello Nancy!"
现在事情开始变得有点模糊。我想在客户端上运行这个脚本,所以我创建了一个名为~/Views/home.sshtml的视图(以及与 Get["/"] 路由关联的 NancyModule - 未显示)。视图的 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:未找到。
我希望 Nancy 在查找引用的home.js文件并找到home.coffee时,能以某种方式神奇地发现我需要将 CoffeeScript 编译为 JavaScript 。这没有用 - 受启发的猜测太多了。
如果我将上面的脚本标记更改为指向现有的home.coffee,则找到该文件,但将其作为普通 JavaScript 文件处理,给出有关缺少令人厌烦的仪式的错误,即:“意外字符串”
问题
现在您知道了我的设置和简单的要求,这是我的问题:
如何让 CoffeeScript 使用 NancyFX 框架“正常工作”?
谢谢
更新
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>());
}
}