【发布时间】:2015-04-11 13:15:43
【问题描述】:
我可以为我的普通路由允许 CORS,但不允许静态内容使用 CORS,因为这些请求不会调用请求后管道处理程序。
有什么方法可以开启吗?
问候
【问题讨论】:
我可以为我的普通路由允许 CORS,但不允许静态内容使用 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;。
【讨论】: