我能够允许CORS用于我的普通路由,但不能用于静态内容,因为没有为这些请求调用after请求管道处理程序。
任何启用它的方法?
此致
答案 0 :(得分:0)
我遇到了同样的问题。至少有几种方法可以解决它。我能够从静态约定中删除“/ 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;
。