CSS在使用php 'includes'相对路径时不起作用

5
文件夹结构
 /
 |--index.php

 +--includes
 |--header.html

 +--css
 |--style.css

我在主项目文件夹中有两个子文件夹。一个名为“includes”的文件夹,另一个名为“css”的文件夹。 我有以下文件: -index.php 文件位于主文件夹中 -header.html 位于'main/includes'文件夹中 -style.css 位于'main/css'文件夹中
我的index.php通过这种方式包含header.html:include_once('includes/header.html'); (有效!)
我的header.html文件像这样链接css:<link href='../css/style.css' type='text/css' rel='stylesheet'/>(无效!)
我不明白为什么css文件没有被加载。 尽管我不确定是否使用正确,我已经尝试使用基础标签。 <base href="http://localhost/main" /> (无效)
5个回答

3

你应该尝试使用

<link href='css/style.css' type='text/css' rel='stylesheet'/>

作为文件 index.php 和文件夹 css 处于同一级别。
使用 <link href='../css/style.css' type='text/css' rel='stylesheet'/>,你要求服务器在 index.php 上一级目录中寻找不存在的 style.css 文件。
你也可以使用 /,因为它指向网站的文档根目录。
<link href="/css/style.css" type="text/css" rel="stylesheet" />

<link href="/css/style.css" type="text/css" rel="stylesheet" />无法工作。 - Eric
<link href='css/style.css' type='text/css' rel='stylesheet'/> 这个有效!谢谢! - Eric
我曾经也为这个问题苦恼,当我读到你的答案时,我真的不得不扇自己一个耳光。这太明显了,但我一直认为header.html被嵌套在文件夹中。谢谢! - Marlon

2

我认为你可能不太理解include的工作原理。基本上,被引用文件中的代码将被复制到主文件中,然后进行处理。因此,如果你将其包含在index.php中,则需要相应地引用CSS文件。

以下代码应该可以正常工作:

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

在使用HTML时,最好使用绝对路径,这样即使您将其复制到根目录以外的文件夹中,上述链接仍然有效,这是最容易的方法。


2

$siteurl ="http://localhost/project";

(将此变量存储在配置文件中,以便全局使用)


(注:该段内容是关于如何在IT技术中存储变量的说明)
<link href='../css/style.css' type='text/css' rel='stylesheet'/>

将会被更改为

<link href='<?php echo $siteurl;?>/css/style.css' type='text/css' rel='stylesheet'/>

0

只需将 <link href='../css/style.css' type='text/css' rel='stylesheet'/> 更改为 <link href='css/style.css' type='text/css' rel='stylesheet'/>


0
如果您正在尝试使用PHP的require在HTML文件中添加CSS:
<style><?php require("css/style.css");?></style>

注意<style> 标签很重要,否则它将输出纯文本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接