【问题标题】:How to exclude certain paths from routing in ASP .NET Core如何从 ASP .NET Core 中的路由中排除某些路径
【发布时间】:2020-12-08 20:24:22
【问题描述】:

我有一个项目,其中所有路径都通过同一个 /index 页面进行路由,但是这会将 images/css/js 文件引导到同一页面。在下面的示例中,我想知道如何将这些资源(即 /images/、/js/、/css/* 等)排除在路由到 /index 页面之外?

services.AddRazorPages().AddRazorPagesOptions(options =>
            {
                options.Conventions.AddPageRoute("/index", "{*url}");
            });

【问题讨论】:

  • this directs images/css/js files through the same page. 你的意思是所有对静态文件的请求都映射到索引页吗?
  • 我展示的示例非常适合我们。我们所有的页面都通过 /index 路由,页面内容根据路径加载。但是,我们不希望将不是页面的文件路由到 /index。所以我想知道如何修改它以排除某些路径,例如,任何以“/images/”开头的路径

标签: c# asp.net-core asp.net-core-razor-pages


【解决方案1】:

使用这个正则表达式,我能够路由所有内容,除非路径有“images/”并且它似乎可以工作:

options.Conventions.AddPageRoute("/Index", "{*url:regex(^(?!images/).*$)}");

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2019-09-05
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多