如何通过文件扩展名设置与任何路径匹配的路由

问题描述 投票:1回答:2

无论路径段的数量如何,我都希望NancyFX中的路由与jpg路径匹配。例如,它应与所有以下项匹配:

  • / image.jpg
  • / foo / image.jpg
  • / foo / bar / baz / foo / baz.jpg

这可能吗?我为NancyFX找到的所有通配符选项似乎都针对特定的路径段,并且不允许多个段(其中段是用'/'分隔的部分)。

似乎应该有可能,因为静态内容服务器需要能够做到这一点。

nancy
2个回答
-1
投票

Nancy支持路由中的正则表达式。您可以使用正则表达式将所有路由匹配到.jpg图像,并捕获图像的路径和名称:

public MyModule : NancyModule
{
    public MyModule()
    {
        Get[@"(?<imagepath>.*)/(?<imagename>.*.jpg)"] = 
            params => 
            {
                string path = params.imagepath;
                string name = params.imagename;
                return DoStuff(path, name);
            }
    }
}

0
投票
public MyModule : NancyModule
{
    public MyModule()
    {
        Get[@"^(?<path>.*\.jpg)$"] = p => 
        {
            string path = p.path;
        }
    }
}

结果(路径值):

  • image.jpg
  • foo/image.jpg
  • foo/bar/baz/foo/baz.jpg
© www.soinside.com 2019 - 2024. All rights reserved.