【发布时间】:2012-03-14 18:36:02
【问题描述】:
我是 NancyFX 的新手,目前正被它的 Web 应用程序开发的低俗方法所吸引。深陷其中,我也想使用CoffeeScript 并研究Sass 的好处。
设置
为了启用这种组合,我使用 VS2010 模板(在 Nancy Accessories 项目中找到)创建了一个新的空 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 取而代之。这没有用 - 受启发的猜测太多了。
如果我将上面的脚本标记更改为指向现有的 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>());
}
}
【问题讨论】:
标签: coffeescript sass nancy