0

我是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>());
    }
}
4

1 回答 1

1

SassAndCoffee 项目不会挂钩到 Nancy 中的静态内容位,它(或类似的东西)将来可能会,但目前它只是一个单独的管道挂钩。

如果你看一下 github 上的示例项目:

https://github.com/NancyFx/Nancy.SassAndCoffee/tree/master/src/Nancy.SassAndCoffee.Demo

那应该向您展示如何进行。

于 2012-03-13T14:23:10.707 回答