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;
.
我可以为我的普通路由允许 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;
.