在 PHP 中从标头包含 CSS


including css in php from header

我有一个链接到css文件的头文件。当我运行头文件时,它完全按照我想要的方式显示。因此,我知道css和头文件正在工作。当我在索引中包含标头时.php css 被忽略并且标头显示不正确。

在头文件中,我将 css 导入为:

<link rel="stylesheet" href="css/style.css">

在索引中.php我将标头导入为:

<?php include("header/header.php"); ?>

任何想法我需要做什么才能包含 css 以便页面正确显示?我的标头.php位于标头文件夹中,其中还包括css文件夹。

我会定义一个常量BASE_URL并在模板标头中使用它:

示例文件结构:

|--- css
|    |--- main.css
|
|--- templates
|    |--- footer.php
|    |--- header.php
|
|--- index.php

索引.php

<?php
define('BASE_URL', $_SERVER['SERVER_NAME'] . "/");
include 'templates/header.php';
?>
My content
<?php
include "templates/footer.php";
?>

标头.php

<!DOCTYPE html>
<html>
<head>
    <link href="<?= BASE_URL ?>css/main.css" type="text/css" rel="stylesheet">
</head>
<body>

页脚.php

</body>
</html>

我遇到了同样的问题,我不知道语言制作者做了什么。如果要在索引或其他文件上使用带有 css 的标头.php则必须确保标头和该文件位于同一目录中,而不是子目录中的标头。有了这个,您至少可以工作,直到找到更好的答案

include('header.php'); //this works even with the css in it
include('header/header.php'); // this does not work when you have a css file in it

如果没有看到您的项目树等,就很难准确指出问题所在。从您的问题来看,虽然我收集了标题.php文件加载正常,但您尝试加载的 CSS 文件没有。

<?php include("header/header.php"); ?>

如上所述,当加载 header.php 文件时,浏览器正在 header/css/ 文件夹中查找 style.css 文件,该文件可能不存在。

然后,您将位于网站的标题文件夹中。然而,我猜css文件夹位于更高的一级?在这种情况下,我会打赌您需要在标题.php文件中返回一个级别:

<link rel="stylesheet" href="../css/style.css">

如果 css 文件夹位于更上一层楼的位置,您可以再往上一层:

<link rel="stylesheet" href="../../css/style.css">

如果做不到这一点,您可以恢复到根级别:

<link rel="stylesheet" href="/path/to/css/style.css">
有两种

可能的解决方案。

第一个,有可能在你的标题中.php你放置了没有回显的链接标签:

<?php <link  rel = "stylesheet"  href = "css / style.css" > ¿>

正确的形式是:

<?php echo "<link  rel = '"stylesheet'"  href = '"css / style.css'" > ?>

第二个,css路径是错误的。您可以将 css 文件放在文件夹 css 中,此文件夹位于头文件夹中。当您在 index.php 中包含 header.php 时,浏览器会在 css/style 中查找 css 样式表.css ,在标头文件夹中,正确的路径是 header/css/style.css

在此处输入图像描述

您必须更改:

<link  rel = "stylesheet"  href = "css/style.css" >

自:

function base_url() {
    $hostName = $_SERVER['HTTP_HOST']; 
    $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';
    return $protocol.$hostName.'/';
    //Or return $protocol.$hostName.'/ your project folder'; -> if you are working on localhost
}

调用此函数以获取网站的基本网址。

现在要定义每个css或其他资产的位置,您可以使用此功能。

<link rel="stylesheet" href="<?php echo base_url(); ?>path/to/style.css">

并记住在需要使用此函数的每个文件中包含包含函数base_url()的文件。