Data URI Scheme 是一種統一資源標識符(URI)方案,允許將外部資源(圖片、樣式表、腳本等)直接以 Base64 編碼內嵌在 HTML、CSS 或 JavaScript 中。這相當於將資源變成網頁的一部分,單次 HTTP 請求即可載入原本需要多次請求的資源,顯著減少網絡往返。
data:[<mediatype>][;base64],<data>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="內嵌圖片">
.icon {
background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==') no-repeat;
/* 亦可用於 @font-face 的 src */
}
<script>
window.open('data:text/html;charset=utf-8,' + encodeURIComponent(
'<!doctype html><html lang="en"><head><title>Embedded</title></head>' +
'<body><h2>42</h2></body></html>'
));
</script>
| 類型前綴 | 適用場景 |
|---|---|
| data:text/plain | 純文本 |
| data:text/html | HTML 代碼 |
| data:text/html;base64 | Base64 編碼的 HTML |
| data:text/css | CSS 代碼 |
| data:text/css;base64 | Base64 編碼的 CSS |
| data:text/javascript | JavaScript 代碼 |
| data:text/javascript;base64 | Base64 編碼的 JS |
| data:image/gif;base64 | GIF 圖片 |
| data:image/png;base64 | PNG 圖片(最常用) |
| data:image/jpeg;base64 | JPEG 圖片 |
| data:image/x-icon;base64 | ICO 圖標 |
// 圖片轉 Base64
$base64 = base64_encode(file_get_contents('demo.png'));
// 輸出完整 Data URI
echo 'data:image/png;base64,' . $base64;
<head>,非關鍵 CSS 異步加載複製以下字符串到瀏覽器地址欄查看效果:
data:text/plain;base64,d3d3LmNoZW53ZWkud3M=
(解碼後為:www.chenwei.ws)