我是NancyFX的新手,并且目前因其对网络应用程序开发的低礼仪方式而着迷。我深深地投入自己,我也想使用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:Not Found。
我希望Nancy能够神奇地解决我在找到引用的 home.js 文件并找到 home.coffee 相反。这不起作用 - 非常适合灵感的猜测。
如果我将上面的脚本标记更改为指向现有的 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>());
}
}
答案 0 :(得分:1)
SassAndCoffee项目没有挂钩到Nancy中的静态内容位,它(或类似的东西)可能在未来,但目前它只是一个单独的管道挂钩。
如果你看一下github上的示例项目:
https://github.com/NancyFx/Nancy.SassAndCoffee/tree/master/src/Nancy.SassAndCoffee.Demo
这应该告诉你如何实现目标。