You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP引入header和footer时如何按需加载对应页面的CSS与JS资源

PHP页面按需加载CSS/JS资源实现方案

你可以通过以下两种常用方案实现需求:

方案1:单页面自定义资源数组(灵活度最高)

  • 第一步:在每个页面对应的内容代码前,先声明当前页面需要的自定义CSS、JS资源数组,再引入header文件
    示例(文章页代码):
    <?php
    // 定义当前页专属CSS资源
    $page_css = [
        'article.css',
        'code-highlight.css'
    ];
    // 定义当前页专属JS资源
    $page_js = [
        'article.js',
        'comment.js'
    ];
    // 引入头部文件
    include('header.inc.php');
    ?>
    
    <!-- 文章页主体内容 -->
    
    <?php include('footer.inc.php'); ?>
    
  • 第二步:修改header.inc.php,在公共CSS输出后,判断并遍历输出当前页的自定义CSS
    header.inc.php示例:
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>站点标题</title>
        <!-- 全站公共CSS,所有页面都加载 -->
        <link rel="stylesheet" href="/css/common.css">
        <link rel="stylesheet" href="/css/nav.css">
        <?php
        // 输出当前页自定义CSS
        if (!empty($page_css)) {
            foreach ($page_css as $css_file) {
                echo '<link rel="stylesheet" href="/css/' . htmlspecialchars($css_file) . '">';
            }
        }
        ?>
    </head>
    <body>
    <!-- 公共头部导航、侧边栏等内容 -->
    
  • 第三步:修改footer.inc.php,在公共JS输出后,判断并遍历输出当前页的自定义JS
    footer.inc.php示例:
    <!-- 公共底部备案信息、友链等内容 -->
    <!-- 全站公共JS,所有页面都加载 -->
    <script src="/js/common.js"></script>
    <script src="/js/dark-mode-toggle.js"></script>
    <?php
    // 输出当前页自定义JS
    if (!empty($page_js)) {
        foreach ($page_js as $js_file) {
            echo '<script src="/js/' . htmlspecialchars($js_file) . '"></script>';
        }
    }
    ?>
    </body>
    </html>
    

方案2:路由匹配自动加载(适合路由规则固定的站点)

如果你的站点使用统一路由入口,可以直接在header、footer中根据当前路由判断要加载的资源,无需每个页面单独定义:

<?php
// 示例:获取当前页面路由,根据路由加载对应资源
$current_route = $_SERVER['REQUEST_URI'];
// 地图页才加载地图相关资源
if (str_contains($current_route, '/map')) {
    echo '<link rel="stylesheet" href="/css/map.css">';
    echo '<script src="/js/map.min.js"></script>';
}
// 日历页才加载日历相关资源
if (str_contains($current_route, '/calendar')) {
    echo '<link rel="stylesheet" href="/css/calendar.css">';
    echo '<script src="/js/calendar.min.js"></script>';
}
?>

注意事项

  • 输出资源路径时建议用htmlspecialchars()做转义处理,避免XSS安全风险
  • 有依赖顺序的JS要注意加载顺序,比如依赖jQuery的自定义JS,要确保公共JS部分先加载jQuery,再输出自定义JS
  • 全站通用的公共资源统一放在header、footer的公共部分加载,不要每个页面重复声明,减少冗余

内容的提问来源于stack exchange,提问作者narseoh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:45:03