我在Nancy中提供静态内容(例如JavaScript)时遇到了麻烦。

例如,使用self hosting sample我将test.js添加到了Views文件夹中,并添加了一个

<script type="text/javascript" src="test.js"></script>

标记到staticview.html页面。如果我在浏览器中查看此页面,则JavaScript正确执行。

但是,当我运行示例时,未执行JavaScript。如果我在FireBug中查看页面,则会看到test.js出现404错误。

我尝试添加

Get["{file}"] = p =>
{
    string path = string.Format("Views/{0}", p.file);
    return Response.AsJs(path);
};

当我设置一个断点并在立即窗口中执行Response.AsJs(path)时,我得到一个NotFound的StatusCode

我也尝试过添加StaticContentConvention,例如

protected override void ConfigureConventions(NancyConventions conventions)
{
    base.ConfigureConventions(conventions);
    conventions.StaticContentsConventions.Add(
        StaticContentConventionBuilder.AddDirectory("/", "Views"));
    conventions.StaticContentsConventions.Add(
        StaticContentConventionBuilder.AddDirectory("Views", "Views"));
}

我究竟做错了什么?

最佳答案

您可以使用NancyConventions配置静态内容。使用以下 bootstrap 中的代码,您可以将所有静态内容(css / js / html / etc)放在应用程序根目录下名为“static”的文件夹中。

namespace Application
{
    public class ApplicationBootstrapper : DefaultNancyBootstrapper
    {
        protected override void ConfigureConventions(NancyConventions nancyConventions)
        {
            nancyConventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("Static", @"Static"));
            base.ConfigureConventions(nancyConventions);
        }
    }
}

完成此操作后,您可以访问静态内容,例如脚本

<script type="text/javascript" src="/static/test.js"></script>

或CSS

<link rel="stylesheet" type="text/css" href="/static/styles.css">

关于nancy - 如何在南希转换静态内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13270163/

10-12 17:47