关于在PHP中包含html页面的问题

关于在PHP中包含html页面的问题,php,html,css,include,Php,Html,Css,Include,如果我在PHP页面(比如index.PHP)中包含一个HTML页面,并包含以下内容: <?php include ("../../forms/login/form.html"); ?> 那么form.php会在index.php中正确显示吗?当我说对的时候,我指的是所有的图片和CSS 我问这个问题的原因是因为我不是这样的。我试过了,它会显示form.html,但没有任何样式 任何帮助都将不胜感激,谢谢 更新: 目前,我在forms.html上有以下内容: <link h

如果我在PHP页面(比如index.PHP)中包含一个HTML页面,并包含以下内容:

<?php
include ("../../forms/login/form.html");
?>

那么form.php会在index.php中正确显示吗?当我说对的时候,我指的是所有的图片和CSS

我问这个问题的原因是因为我不是这样的。我试过了,它会显示form.html,但没有任何样式

任何帮助都将不胜感激,谢谢

更新:


目前,我在forms.html上有以下内容:

<link href="view.css" media="all" rel="stylesheet" type="text/css" />
<script src="view.js" type="text/javascript"></script>
<link href="../../css/style.css" rel="stylesheet" type="text/css" />
<link href="/forms/login/view.css" media="all" rel="stylesheet" type="text/css" />
<script src="/forms/login/view.js" type="text/javascript"></script>
<link href="/css/style.css" rel="stylesheet" type="text/css" />

现在,forms.html本身可以正确显示

在index.php上,我有:

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>UofS :: Residence Life Management System</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />

</head>

<body>

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

<?php
include ("php/navigation.php");
?>
<br></br>
<?php
include ("forms/login/form.html");
?>
<br></br>
<?php
include ("html/footer.html");
?>

</body>

</html>

UofS::住宅生活管理系统




对forms.html的唯一引用是通过php include()进行的。没有指向它的样式表。这是无法正确加载forms.html的页面。这不对吗


谢谢

样式表的路径可能是相对的。它需要与浏览器中的url(index.php)相对。或者让它成为一条绝对的道路

更新后编辑: 不会加载view.css和view.js,因为它们的路径是相对的。从index.php页面将这些路径设置为绝对路径或相对路径。无论何时从任何地方包含form.html,将它们设置为绝对值都会使它们工作。将index.php中的路径设置为相对路径将使它们在从index.php中包含时工作,但在从其他目录中包含时不会工作

更好的是,如果您知道需要加载这些文件,请将链接放在index.php页面而不是form.html页面上

还请注意,您可以使用以站点根目录开头的路径,而不必包括主机名和域名:

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

“css/style.css”前面的斜杠将使其成为在live和dev服务器上工作的绝对路径

编辑

假设index.php文件位于根级别,请在forms.html中尝试以下操作:

<link href="view.css" media="all" rel="stylesheet" type="text/css" />
<script src="view.js" type="text/javascript"></script>
<link href="../../css/style.css" rel="stylesheet" type="text/css" />
<link href="/forms/login/view.css" media="all" rel="stylesheet" type="text/css" />
<script src="/forms/login/view.js" type="text/javascript"></script>
<link href="/css/style.css" rel="stylesheet" type="text/css" />

它将在PHP页面中逐字包含HTML文件。如果外部资源上的路径基于PHP页面的URL是正确的,那么它们将显示。

显示form.html,但不显示任何样式

您需要相应地调整对CSS文件的引用。使用绝对路径可能是更好的主意

如果以前

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

现在:



我会保留
http://host
part out of it,这样我就可以在我的dev和live服务器上运行相同的代码,除此之外,使用绝对路径将是最简单的解决方案。斯科特:谢谢你的帮助。我想让我困惑的是如何从index.php页面将路径设置为绝对(或相对)路径……现在,对forms.html的唯一引用是php include语句。你能给我举个例子吗?你需要从浏览器的角度考虑路径。浏览器将解释它们并尝试加载css和js文件。因此,请将路径设置为index.php(浏览器加载的)路径,而不是forms.html(浏览器从未直接访问过)路径。我将更新我的答案,猜测一下你的目录结构。再次感谢你的帮助。我的index.php确实是根结构,但是您上面建议的代码没有任何区别。嗯……我已经开始工作了,现在,我刚刚删除了“/forms”和“/css”中的前斜杠。谢谢以下是我最喜欢的思考方式,包括。。。它本质上是复制和粘贴。。。但是要干净得多!