PHP Require方法未显示任何CSS样式

时间:2019-05-15 18:15:51

标签: php html css

我最近正在做一个学校项目的网站。为了组织我的工作,我创建了一个树状文件夹,将所有工作组织在一起。就像这样:

  • 后台

    • 页面

      • 首页
        • home_test1.php
        • home_test2.php
        • home_test3.php
      • 登录
        • 文件夹登录
          • login.php
          • logout.php
    • 资源

      • CSS
        • style_home.css
        • style_navbar.css
        • style_footer.css
      • JS
        • script_home.css
        • script_navbar.css
    • 部分

      • navbar.php
      • footer.php

毕竟,使用PHP中可用的require()方法,我想将“ navbar.php”文件命名为“ home_test1.php”,“ home_test2.php”和“ home_test3.php”,但是与文件“ navbar.php”(“ style_navbar.php”)关联的CSS样式不会显示。

当我{{1}}到另一个文件(“ home_test1.php”)并且显示CSS样式时,我试图在文件“ navbar.php”中更改CSS样式的路径,但不会显示在具有不同路径的其他文件中。如何动态地进行这项工作?抱歉,发布时间太长,英语语法不好。

谢谢。

3 个答案:

答案 0 :(得分:0)

您需要使用绝对路径而不是相对路径来设置css和js文件

$dir = realpath($_SERVER["DOCUMENT_ROOT"]);
<link rel="stylesheet" href="<?php echo $dir.'/resources/css/style_home.css'; ?>" >

答案 1 :(得分:0)

在物理上看不到您的代码很难调试,但是我建议您以一个“明显的”答案作为起点。

要记住的重要一点是,PHP和HTML的处理位置完全不同。 PHP在服务器上执行,应用于构建提供给客户端/浏览器的完整HTML“文档”。然后,客户端/浏览器读取提供的文档并根据HTML标准对其进行呈现。

调用require()将告诉PHP获取文件并将其内容直接放在调用位置,因为它是CSS文件,因此需要放在style标记内。在许多现代浏览器中,如果在require标记之外的文件上使用html,则内容将被转储到屏幕顶部,或者由于语法无效而被忽略。

或者,如果您只想使用告诉浏览器包含CSS文件,则可以使用旧的使用<link rel="stylesheet" href="/path/to/file">的方法。很高兴知道何时以及何时不使用PHP。

PS:您的JS目录中有.css个文件。

答案 2 :(得分:0)

在PHP中,有一个全局变量,其中包含与服务器有关的各种详细信息。它称为$_SERVER.,它还包含根:-

  

$ _ SERVER ['DOCUMENT_ROOT']

<?php

   $path = $_SERVER['DOCUMENT_ROOT'];
   <link rel="stylesheet" href="<?php echo $path.= '/Resources/CSS/style_navbar.css';?>" />

?>