Blazor路由和静态文件(PDF)冲突

时间:2020-02-09 22:58:30

标签: pdf asp.net-core routing blazor

以Wiki.js的样式(当然使用.net)创建作为Wiki的Blazor服务器端应用程序

自用户创建页面以来,这主要是SPA,其中index.razor符合以下条件:

@page "/"
@page "/{PageLink}"
@page "/{Folder}/{PageLink}"

不幸的是,由于我正在尝试迁移现有的Wiki.js Wiki,因此我试图保留它们的文件结构,其中uploads位于主repo文件夹中。因此,index.razor抓住了。 .../uploads/file.pdf并尝试将其呈现为Wiki页面(文件夹= uploads,PageLink = file.pdf)。

我能够将其添加到Startup.cs,这有帮助:

app.Map("/uploads", fileApp =>
        {
            fileApp.UseStaticFiles(new StaticFileOptions()
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"WikiPages", @"uploads")),
                ServeUnknownFileTypes = true
            });
        });

将其放在app.UseEndpoints之前意味着输入或粘贴路径http://localhost/uploads/file.pdf现在可以正常工作,并显示我的pdf。但是,在Wiki页面上,单击链接<a href="uploads/file.pdf">File</a>不起作用,并且仍会触发index.razor路线。按住Shift键,Ctrl键单击,右键单击和“在新选项卡中打开”都是工作,但是基本单击则不行。

我知道,将来Blazor可能会提供更高级的路由支持,这将使我能够从uploads中“排除”文件夹index.razor。同时,我该如何修复这些链接以显示pdf文件?

(完整代码位于Bliki

0 个答案:

没有答案
相关问题