我在index.php
:的头部有这个
<link rel="apple-touch-startup-image" href="images/screenLD.png" media="(device-width:320px)" /><!--iPod/iPhone Portrait LD 320x460-->
<link rel="apple-touch-startup-image" href="images/screenHD.png" media="(device-width:320px)and(-webkit-device-pixel-ratio:2)" /><!--iPod/iPhone Portrait HD 640x920-->
<link rel="apple-touch-startup-image" href="images/screenPortraitLD.png" media="(device-width:768px)and(orientation:portrait)" /><!--iPad Portrait LD 768x1004-->
<link rel="apple-touch-startup-image" href="images/screenLandscapeLD.png" media="(device-width:768px)and(orientation:landscape)" /><!--iPad Landscape LD 748x1024-->
<link rel="apple-touch-startup-image" href="images/screenPortraitHD.png" media="(device-width:1536px)and(orientation:portrait)and(-webkit-device-pixel-ratio:2)" /><!--iPad Portrait HD 1536x2008-->
<link rel="apple-touch-startup-image" href="images/screenLandscapeHD.png" media="(device-width:1536px)and(orientation:landscape)and(-webkit-device-pixel-ratio:2)" /><!--iPad Landscape HD 1496x2048-->
在cache.manifest
:中
CACHE MANIFEST
index.php
images/screenLD.png
images/screenHD.png
images/screenPortraitLD.png
images/screenLandscapeLD.png
images/screenPortraitHD.png
images/screenLandscapeHD.png
但我们可以很容易地理解,一个iPhone用户将需要缓存5个其他无用的大图像。
我怎么能让他只缓存他需要的图像呢?
顺便说一句,对于那些想要在每台苹果设备上运行的闪屏代码的人来说,我的代码是完美的
使用python/php脚本,检查设备的用户代理字符串。然后为不同版本的cache.manifest
提供特定设备所需的缓存列表。如果用户代理字符串格式错误或未知,则为上面包含所有内容的字符串提供服务。
示例:
- 创建脚本,例如:
cache_manifest.php
- 对$_SERVER进行消毒['HTTP_USER_AGENT']
- 从用户代理字符串中查找设备的名称
- 输出(通过"
echo
")给定设备的LD/HD文件。用户代理字符串将不允许您准确地确定设备是否具有视网膜显示器 - 将通过
RewriteRule
的流量从/cache.manifest
重定向到cache_manifest.php
Htaccess
文件看起来像:
RewriteEngine On
RewriteRule ^cache.manifest$ /cache_manifest.php [L]
iPhone用户代理字符串如下所示:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
iPad用户代理字符串如下所示:
Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
您实际上不需要缓存apple touch启动图像标签中使用的图像。该设备将在第一次运行时下载所需的图像(在缓存任何内容之前)。当它们被缓存时,就不再需要它们了。