我将有多个文件夹/模块来访问公共文件。但访问它们似乎对我来说很重要!
我确实通过这个链接了解相对定位并设法解决了一些问题。但不是所有的。参考: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>
我应该如何包含这些文件?
答案 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
的代码(或内容)放入来电者页面。
因此,您可能必须检测您的网页被调用的位置,或尝试绝对链接(以/
开头)
我希望我能正确回答你的问题。