以下代碼應適用于純 html
<a href="pdf/foo.pdf" target="_blank">Open pdf</a>
它也適用于 Blazor (WebAssembly),但只能來自 localhost。一個帶有地址的新選項卡打開https://localhost:[...]/pdf/foo.pdf。在生產中,瀏覽器嘗試打開https://[...]/pdf/foo.pdf,但出現錯誤
對不起,這個地址什么都沒有。
Blazor 有解決方案嗎?
編輯 2
我洗掉了我的第一個編輯,因為有了以下新資訊,我認為它不再相關。因為我認為在 netlify 上部署 pdf 是一個問題,所以我在他們的論壇中詢問:https://answers.netlify.com/t/how-can-i-deploy-a-pdf/54897。(抱歉,短鏈接語法 [][] 似乎在編輯中不起作用。)我創建了一個演示頁面(https://beautiful-snickerdoodle-bb5389.netlify.app/),發現它不起作用我的電腦和幾臺筆記本電腦,但在我的智能手機上。netlify 論壇中的用戶能夠在 Chrome 中顯示 pdf,但不能在 Safari 中顯示。所以,我認為,這不是 netlify 的問題,但我的頁面有問題。任何幫助是極大的贊賞。
uj5u.com熱心網友回復:
我看到的問題是您需要<a ... target="_blank">獲得一個新選項卡,但您需要NavigationManager.NavigateTo(..., forceLoad:true);繞過路由。
您可以使用重定向組件(頁面)來執行此操作。
@page "/redirect/{document}"
@inject NavigationManager Navigation
@code {
[Parameter]
public string Document { get; set; } = null!;
protected override void OnInitialized()
{
Navigation.NavigateTo($"pdf/{Document}.pdf", forceLoad:true);
}
}
然后像這樣使用它
<a href="redirect/foo" target="_blank">Open pdf</a>
烘焙路徑和 .pdf 擴展名是為了安全并避免編碼問題。
這并不完美,如果它有效,您將看到您的應用程式首先加載,然后是 PDF。
使用帶有 IFrame 的裸布局可能是另一種選擇。
我只在本地測驗過,所以試一試。
uj5u.com熱心網友回復:
您如何提供下載是您的選擇,如何處理是用戶的選擇,

有兩種推薦的方法,
提供
<a href="absolute fab.pdf" download>download this fab pdf, I promise its safe to run</a>如果您在此空白 iFrame 中看不到任何內容,則您的瀏覽器漏洞利用安全性是完美的。

uj5u.com熱心網友回復:
您的“pdf/foo.pdf”路徑表示您網站的 wwwroot 檔案夾中有一個 pdf 檔案夾,請確保該檔案夾也存在于您的 prod 環境中并且有您嘗試打開的 pdf 檔案,還要確保該檔案夾有IIS_IUSRS 的讀/寫權限
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462048.html
上一篇:使用Python壓縮PDF的影像(幫助替換PDF中的影像)
下一篇:Python多行正則運算式
