【问题标题】:How to properly reference the css files and includes in a php project?如何正确引用 css 文件并包含在 php 项目中?
【发布时间】:2013-03-03 08:05:35
【问题描述】:

我是 php 新手,知道这是一个很常见的问题。我已经在网上阅读了很多相关的问题,在这里堆栈溢出,但是我无法成功地实现它们。

我有一个目录结构如下的项目:

Project/
     includes/
              header.php
              footer.php
              sidebar.php
     css/
              style.css
     index.php
     blog/
              index.php

在根目录的 index.php 中,我像这样拉入包含:

include 'includes/header.php';

header.php 中的 css 文件如下:

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

现在这适用于根目录中的 index.php 文件和根目录中的任何其他文件。但是它会中断子文件夹中的所有页面,例如 blog/index.php

我的主要问题是如何正确引用我的 css 文件和我在项目中包含的内容,以便二级页面也可以访问这些文件?

注意事项:
- 我在本地服务器上工作
- 所有项目文件都包含在根目录下的 PROJECT 文件夹中 - (localhost:8888/Project/index.php)

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: php include


    【解决方案1】:

    您需要通过应用程序的根目录引用它。使用以下选项

     <link rel="stylesheet" href="/css/style.css">
    
     <link rel="stylesheet" href="//domain.com/css/style.css">
    
    
     include $_SERVER['DOCUMENT_ROOT'].'/includes/header.php';
    

    您目前拥有它的方式不适用于您域名根目录之外的任何文件。它的作用如下。

    您位于http://example.com/,并且您的网站包含 css/style.css,因此它附加到域中。在根级别这很好。现在,如果您在http://example.com/myFile/andFolder,如果您不包含前导斜杠,它仍然会附加到域中......所以现在它正在http://example.com/myFile/andFolder/css/style.css 寻找您的风格。添加前导斜杠是告诉服务器,我想在我的域的根目录中查找它。

    我对@9​​87654325@ 的第二个选项在域名前加上两个// 只是通过https:// 托管它的一种快速方法,如果这是当前页面所在的位置。

    【讨论】:

    • 您好 bretterer,感谢您提供建议。似乎在指向 css 文件的链接之前添加斜杠不起作用。当我这样做时它不会引用它。话虽如此,您的第二种方法正在起作用,但在这种情况下,我将不得不对每个链接中的路径进行硬编码。我一直在寻找一种更具可扩展性的方法,所以现在我按照 MIIB 的建议定义了基本 url。有效。感谢您的帮助。
    【解决方案2】:

    简单但不是最好的方法是您始终可以链接到绝对路径:(我不推荐)

    <link rel="stylesheet" href="http://localhost/Project/css/style.css">
    

    最好有一个带有 base_url 变量的配置文件,并且总是通过 base_url 链接你的 css 和其他东西;

    【讨论】:

    • 如果这样做,我会将其设置为不是变量,而是绝对首先在您的应用程序中定义的常量。通过这种方式使用DEFINE('BASE_URL',''),您可以确信BASE_URL 永远不会被覆盖。
    • 目前我在我的标题&lt;base href="http://localhost:8888/Project/" /&gt;中包含了这个h​​tml标签。这解决了链接到样式表的问题。
    猜你喜欢
    • 2014-01-12
    • 2017-11-17
    • 2017-06-04
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2012-07-27
    • 2016-02-18
    • 2018-08-25
    相关资源
    最近更新 更多