我有一个应用程序,我有两个版本,这两个版本使用不同的皮肤。我的问题是我需要根据使用的皮肤改变图标。
在我的应用程序根文件夹中,只有一个皮肤的一个图标。
对于第2个favicon,我在index.php中使用了路径,如
<html>
<head>
<link href="images/skin2/favicon.ico" rel="SHORTCUT ICON"/>
</head>
</html>
它可以很好地渲染第二层皮肤的图标,但是当我使用Ctrl + F5刷新页面时,第一层皮肤的图标会被渲染到位于根目录中。
请告诉我解决这个问题的一些解决方案....
答案 0 :(得分:0)
Firefox可能正在缓存favicon。
尝试
将查询字符串附加到favicon名称的末尾
<link href="images/skin2/favicon.ico?v=2" rel="SHORTCUT ICON" />
检查以确保可以访问favicon。转到URL并强制刷新。
http://mydomain/images/skin2/favicon.ico
答案 1 :(得分:0)
使用url重写从php或asp.net检索favicon.ico。
您可以禁用缓存并检索活动皮肤的正确图标。
RewriteRule ^favicon.ico favicon.php [L]
然后在favicon.php中返回正确的版本
<?php
// add cache control headers here
header('Content-type: image/x-icon');
echo file_get_contents("path-to-skin-icon");
?>
答案 2 :(得分:0)
我做了一些技巧并且工作正常,在这里分享可能会帮助其他人
<script>
var faviconFolderName = "skin3";
if(skinName == "skin1")
{
faviconFolderName = "skin1";
}else if(skinName == "skin2"){
faviconFolderName = "skin2";
}
$(window).load(function () {
$('head').append('<link href="images/'+faviconFolderName+'/favicon.ico" rel="shortcut icon" type="image/x-icon" />');
});