如果我在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的页面。这不对吗?
谢谢!
答案 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是正确的,那么它们将显示出来。