2015-02-11 60 views
0

我能夠允許CORS用於我的普通路由,但不能用於靜態內容,因爲未針對這些請求調用after請求管道處理程序。Nancy FX爲靜態內容啓用CORS

任何方式來啓用它?

Regards

回答

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;

+0

是的,謝謝。幾個星期前我自己發現了它。 – decades 2015-04-25 20:37:01