近期在自己項目中遇到引用一些網絡圖片資源,顯示無法加載,但是在瀏覽器打開圖片路徑又可以顯示的問題
解決辦法:
在圖片顯示的界面把meta referrer標簽改為never
<meta name="referrer" content="never">
或者在img標簽上加上:
referrerpolicy="no-referrer"
即可顯示
下面我們大致了解一下meta referrer標簽
通過Referrer Policy 介紹,了解到,這是一種引用策略,可以用來防止圖片或視頻被盜。
策略名稱 | 屬性值(新) | 屬性值(舊) |
---|---|---|
No Referrer | no-referrer | never |
No Referrer When Downgrade | no-referrer-when-downgrade | default |
Origin Only | origin | - |
Origin When Cross-origin | origin-when-crossorigin | - |
Unsafe URL | unsafe-url | always |
- No Referrer:任何情況下都不發送 Referrer 信息;
- No Referrer When Downgrade:僅當發生協議降級(如 HTTPS 頁面引入 HTTP 資源,從 HTTPS 頁面跳到 HTTP 等)時不發送 Referrer 信息。這個規則是現在大部分瀏覽器默認所采用的;
- Origin Only:發送只包含 host 部分的 Referrer。啟用這個規則,無論是否發生協議降級,無論是本站鏈接還是站外鏈接,都會發送 Referrer 信息,但是只包含協議 + host 部分(不包含具體的路徑及參數等信息);
- Origin When Cross-origin:僅在發生跨域訪問時發送只包含 host 的 Referrer,同域下還是完整的。它與
Origin Only
的區別是多判斷了是否Cross-origin
。需要注意的是協議、域名和端口都一致,才會被瀏覽器認為是同域; - Unsafe URL:無論是否發生協議降級,無論是本站鏈接還是站外鏈接,統統都發送 Referrer 信息。正如其名,這是最寬松而最不安全的策略;
關於如何運用,在Referrer策略與防盜鏈中也找到了用法,
這里只舉例說一下img的:
通過<a>、<area>、<img>、<iframe>、<link>元素的referrerpolicy屬性來規定策略。
結束