Nancy FX 为静态内容启用 CORS

Nancy FX enable CORS for static content

我可以为我的普通路由允许 CORS,但不能为静态内容,因为不会为这些请求调用请求后管道处理程序。

有什么方法可以启用它吗?

此致

我运行陷入同样的​​问题。至少有几种方法可以解决它。我能够从静态约定中删除“/Content”目录并在 NancyModule 中处理这些请求,然后 AfterPipeline 处理程序是 运行。另一种选择是将需要 CORS 的文件从“/Content”目录移到另一个位置,并在 NancyModule 中处理这些请求。

这是一个示例,从自定义引导程序开始:

protected override void ConfigureConventions(Nancy.Conventions.NancyConventions nancyConventions)
{
    base.ConfigureConventions(nancyConventions);

    //remove "/Content" directory from the static conventions
    nancyConventions.StaticContentsConventions.Clear();

    //add a different path to static content since it is not allowed to be empty
    nancyConventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("scripts"));            
}

并在 NancyModule 中处理文件请求,可能像...

Get["/content/{path*}"] = args =>
{
    var path = "/content/" + args.path;

    //pass in the file path, and content type to return
    return Response.AsFile(path, "text/plain");
};

如果您只是将文件移出“/Content”目录,则只需将 content 替换为备用文件夹名称,即 Get["/altFolder/{path}*"]var path = "/altFolder/" + args.path;.