这是一个结构示例:
/main
/css
style.css
/include
article1.php
article2.php
header.php
index.php
在我的 header.php 中,我有以下 CSS 代码:
<link rel="stylesheet" type="text/css" href="css/style.css" />
例如,在我的 index.php 中,第一行是以下内容:
<?php include 'header.php'; ?>
现在,一切正常。接下来,我将在 article1.php 文件中插入以下代码:
<?php include '../header.php'; ?>
内容(菜单和其他 html)显示正确,但 CSS 根本无法显示/识别。基本上发生的事情是头文件被包含但服务器不尊重目录父子关系。为了正确显示 CSS,我必须将 CSS 的 link rel
更改为 ../css/style.css
,但如果我这样做了' 处理位于主目录中的文件。
我希望我把问题说清楚了。我究竟做错了什么?如何包含来自不同目录的文件并保留其中的链接?
最佳答案
在您网站的 <head>
节,插入 a <base>
element与 href
属性。设置 href
属性到您网站的基本 URL,所有相对请求都将通过该基本 URL 发送。
<base href="http://my-website-url.com/" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
使用正确设置的 base
标记,用户的浏览器将尝试从 URL http://my-website-url.com/css/style.css
加载您的样式表.
注意:这不仅会影响样式表,还会影响文档中的所有相关链接。
关于php包含来自另一个目录的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15683465/