相对URL问题

时间:2015-05-19 15:24:23

标签: php html

我将有多个文件夹/模块来访问公共文件。但访问它们似乎对我来说很重要!

我确实通过这个链接了解相对定位并设法解决了一些问题。但不是所有的。参考:Relative URL's/paths in php

我的文件夹结构如下:

网站在根文件夹上运行:

/(index|ajax).php

然后是子文件夹:

/css/style.css

/img/*.(jpg|png|gif)

/inc/(header|footer).php

/js/*.js

/registration/(ajax|getsubjects|response|success).php

现在,这是我在index.php页面中包含文件的方式(这显示正确,意思,样式,css,js,配置都可访问)

<?php
include('inc/header.php');
?>

content here
<?php
include('inc/footer.php');
?>

此索引页面必须获取getsubjects.php,response.php,然后最终登陆success.php。

success.php需要一些样式,而前两个仅用于处理。

所以现在在success.php中我访问页眉和页脚如下:

include('../inc/header.php');
include('../inc/footer.php');

但这不适用于任何样式!

在header.php和页脚里面我包含这样的文件:

<link rel="stylesheet" href="./css/style.css">
<script src="./js/script.js"></script>

我应该如何包含这些文件?

3 个答案:

答案 0 :(得分:2)

./css/style.css表示从当前目录开始,将获得与css/style.css相同的结果。最简单的答案是确定应用程序的基本路径是什么并使用它。例如,如果您的应用程序以http://myapp.com运行,那么您可以将所有前端路径设置为/css/style.css。如果您的应用在子目录中运行,例如http://example.com/myapp,则您的路径将为/myapp/css/style.css

这在PHP方面不适用。对他们来说,你应该真正使用文档相对路径。拥有一个包含在应用程序中多个位置的PHP文件,其内容具有类似include('../myDoc.php');的内容,可能会导致复杂化,因为路径不是基于所包含文档的路径,而是基于包含。因此,使用文档相对路径,您可以解决此问题include(__DIR__ . '/../myDoc.php');。如果您的应用增长,请考虑一下。

答案 1 :(得分:1)

您的PHP包含似乎是正确的。但是在HTML中,您需要更改CSS和JS文件的链接(甚至可能更改为图像)。

您可以使用绝对路径:

<link rel="stylesheet" href="/css/style.css">
<script src="/js/script.js"></script>

前导点使您的路径相对于HTML-Document,因此如果它们是从子文件夹中的文档链接的,则它们指向错误的位置。

答案 2 :(得分:0)

包含带

的文件
<?php
    include("page1.php")
?>

page1 的代码(或内容)放入来电者页面。

因此,您可能必须检测您的网页被调用的位置,或尝试绝对链接(以/开头)

我希望我能正确回答你的问题。

相关问题