html - 在新标签页中打开 PDF - Blazor

我想在新标签页中打开 PDF。以下代码适用于普通 HTML 文件,但不适用于 Blazor。有什么方法可以在 Blazor 中使用它,或者有其他方法可以在 Blazor 中打开 PDF 吗?

<a href="Path" target="_blank">Read more</a>

最佳答案

在“普通”HTML 中有效的方法在 Blazor 中不起作用,因为服务 worker 将未知路由路由到 index.html。参见 onFetch() service-worker.published.js 方法:

const shouldServeIndexHtml = event.request.mode === 'navigate';
const request = shouldServeIndexHtml ? 'index.html' : event.request;

当您点击您的链接时 <a href="Path" target="_blank">Read more</a> , shouldServeIndexHtmltrue .

为避免这种情况,只需将上面的代码更改为

const shouldServeIndexHtml = event.request.mode === 'navigate'
     && !event.request.url.includes('/pdf/');
const request = shouldServeIndexHtml ? 'index.html' : event.request;

这假设您的 pdf 位于 wwwroot 下的子文件夹“pdf”中。请查找更多信息here .由于 url 包含“/pdf/”,shouldServeIndexHtml变成 false并显示您的 pdf。

https://stackoverflow.com/questions/69973950/

相关文章:

debugging - A/libc : Fatal signal 11 (SIGSEGV), 代码

reactjs - 为什么我的 CSRF token 与 Laravel 和 Sanctum 不匹配

node.js - 如何解决错误 : Cannot find module 'express-rat

amazon-web-services - 如何查看 AWS 备份库的大小?

sql - 传递大的逗号分隔值时,使用 Custom TABLE TYPE 作为参数而不是 SQL

kotlin - 如何在 Kotlin Multiplatform 中获取特定于平台的换行符?

python - Spyder 5.1.5 内核挂起,5.2.1 无法与 conda 一起使用

javascript - 如何将 HTMLElement 转换为 JSX.Element

javascript - 按顺序播放多个音轨,而不是同时播放

python - 如何处理两个事件循环? Pyrogram 和 Tkinter 的