為什麼 Android 不緩存 Apple Touch 圖示?

為什麼 Android 不緩存 Apple Touch 圖示?

我不確定這是否適用於所有 Android 手機,但似乎許多 Android 瀏覽器不會緩存 Apple Touch 圖標並在每個頁面視圖上重新加載它。

<head>我的 HTML 頁面中有以下內容:

<link rel="apple-touch-icon" sizes="152x152" href="/path/to/icon.jpg" />

在我的伺服器日誌中,我看到許多來自 Android 用戶端的訪客在每個頁面視圖上不斷請求圖示檔案:

[02/Jan/2014:16:21:43 +0100] "GET /path/to/icon.jpg HTTP/1.1" 200 13017 "-" "Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
[02/Jan/2014:16:22:04 +0100] "GET /path/to/icon.jpg HTTP/1.1" 200 13017 "-" "Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
[02/Jan/2014:16:22:30 +0100] "GET /path/to/icon.jpg HTTP/1.1" 200 13017 "-" "Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
[02/Jan/2014:16:22:45 +0100] "GET /path/to/icon.jpg HTTP/1.1" 200 13017 "-" "Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
[02/Jan/2014:16:23:03 +0100] "GET /path/to/icon.jpg HTTP/1.1" 200 13017 "-" "Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; GT-I9100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"

我在 Android 版本 4.1、4.2 和 4.3 中看到過這種情況。我的伺服器發送一個Expires標頭,因此快取應該可以正常工作:

$ date -u
Thu Jan  2 15:28:49 UTC 2014
$ curl -s -D - www.mywebsite.com/path/to/icon.jpg -o /dev/null
HTTP/1.1 200 OK
Date: Thu, 02 Jan 2014 15:28:52 GMT
Server: Apache/2.2.16 (Debian)
Last-Modified: Mon, 30 Dec 2013 14:04:44 GMT
ETag: "15201cd-316b-4eec0ecfd5700"
Accept-Ranges: bytes
Content-Length: 12651
Cache-Control: max-age=900
Expires: Thu, 02 Jan 2014 15:43:52 GMT
Content-Type: image/jpeg

這些客戶端也成功地快取 CSS 和其他檔案。

有沒有人看過這個?什麼原因?這只是一個 Android 瀏覽器錯誤嗎?

相關內容