PHP引入header文件时Favicon无法显示的问题求助
解决PHP Include引入Header时Favicon不显示的问题
你遇到的问题主要有两个核心原因,咱们一步步拆解解决:
1. 修复HTML结构错误
根据HTML规范,<link>标签(包括定义网站图标的)必须放在<head>区块内,但你现在把<link rel="shortcut icon" href="favicon.ico">写在了<header>标签里——这个<header>属于页面可见的头部内容区块,是<body>的一部分,浏览器不会在这个位置解析网站图标。
调整方案:
推荐把头部的元信息、样式、图标统一放在一个单独的文件里管理,比如新建head.php:
<!-- inc/pages/head.php --> <title>Accueil</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="CSS/header-style.css"> <link rel="stylesheet" type="text/css" href="CSS/style.css"> <link rel="stylesheet" type="text/css" href="CSS/footer-style.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <script src="myscripts.js"></script> <!--bootstrap--> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/css/bootstrap.min.css" integrity="sha384-PDle/QlgIONtM1aqA2Qemk5gPOE7wFq8+Em+G/h$"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="$"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF8$"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/js/bootstrap.min.js" integrity="sha384-7aThvCh9TypR7fIc2HV4O/nFMVCBwyIUKL8XCtKE+8xgCgl/PQGuFsvSh$"></script> <!-- 网站图标 --> <link rel="shortcut icon" href="favicon.ico"> <!-- 可选:添加多尺寸图标适配不同设备 --> <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
然后修改主页面,把<head>内容通过include引入:
<!DOCTYPE html> <head> <?php include 'inc/pages/head.php'; ?> </head> <body> <!-- HEADER --> <?php include 'inc/pages/header.php'; ?> <!-- 其他页面内容保持不变 --> </body> </html>
2. 确认文件路径正确性
如果暂时不想调整结构,非要在header.php里放favicon链接,要注意路径是相对于主页面的位置,而非header.php自身的位置。
比如你的主页面在根目录,header.php在inc/pages/,若favicon.ico在根目录,header.php里的路径要写成:
<link rel="shortcut icon" href="../favicon.ico">
更稳妥的方式是使用绝对路径(从网站根目录开始),这样不管哪个页面include header.php,路径都不会出错:
<link rel="shortcut icon" href="/favicon.ico">
额外小提示
- 浏览器会缓存favicon,修改后按
Ctrl+F5强制刷新页面,或者清除浏览器缓存再测试。 - 建议准备多尺寸的favicon文件,覆盖桌面、移动端等不同场景的显示需求。
内容的提问来源于stack exchange,提问作者Poli
相关产品推荐
相关产品推荐

