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

时间:2010-02-09 15:49:34

标签: php html css include

如果我在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" />

现在,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>

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

谢谢!

3 个答案:

答案 0 :(得分:10)

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

自您的更新后进行编辑: view.css和view.js将不会被加载,因为它们的路径是相对的。从index.php页面使这些路径成为绝对路径或相对路径。无论何时在任何地方包含form.html,都可以使它们成为绝对的。从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="/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" />

答案 1 :(得分:3)

显示form.html但没有任何样式......

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

如果之前

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

现在:

<link rel="stylesheet" type="text/css" href="http://host/path/to/style.css" /> 

答案 2 :(得分:0)

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