为静态内容启用CORS

为静态内容启用CORS,cors,nancy,Cors,Nancy,我可以允许CORS用于我的普通路由,但不能用于静态内容,因为这些请求不会调用请求后管道处理程序 有什么办法可以实现吗 我遇到了同样的问题。至少有两种方法可以解决这个问题。我能够从静态约定中删除“/Content”目录,并在NancyModule中处理这些请求,然后运行AfterPipeline处理程序。另一个选项是将需要COR的文件从“/Content”目录移到另一个位置,并在NancyModule中处理这些请求 下面是一个示例,从自定义引导程序开始: protected override vo

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

有什么办法可以实现吗


我遇到了同样的问题。至少有两种方法可以解决这个问题。我能够从静态约定中删除“/Content”目录,并在NancyModule中处理这些请求,然后运行AfterPipeline处理程序。另一个选项是将需要COR的文件从“/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