我在php中有一个Web应用程序。我有一个header.php
文件,其中我有开放的html标记,元数据,css,js文件包含。
我在这个应用程序中有多个文件夹。我已经给header.php
中的css,js文件提供了相对路径。我面临的问题是,当我将这个header.php
文件包含在其他文件./test-folder/my-file.php
中时,相对路径会中断。
所以为了解决这个问题,我已经给出了绝对必要的路径。但是每次上传到服务器时我都必须更改这些路径。这可以用其他方式完成吗?
提前致谢
安
答案 0 :(得分:11)
不要为路径使用静态值,而是为文档根定义常量并使用该常量
define('ROOT_PATH',$_SERVER['DOCUMENT_ROOT']);
包含文件时,您可以使用此常量。
include ROOT_PATH.'/some_dir/file.php';
答案 1 :(得分:2)
您的应用程序中存在糟糕的架构。尝试搜索有关MVC的信息
这个答案可能有用:https://stackoverflow.com/questions/5721353/what-is-good-neat-architecture-in-programming/5793753#5793753
所以:
答案 2 :(得分:1)
相对路径相对于当前工作目录(cwd)。如果您只是包含另一个cwd 不更改的文件 如果你想拥有(某种程度上)相对于当前脚本文件路径的路径,你可以使用,例如。
require dirname(__FILE__).'/some_dir/file.php';
或从php 5.3开始
require __DIR__.'/some_dir/file.php';
答案 3 :(得分:0)
如果我理解你的问题,你只想知道应用程序的根文件夹,而无需对其进行硬编码。
更简单的方法是在Shakti回答时定义一个常量。
但是,您实际上可以在根文件夹中拥有一个具有唯一名称的文件,例如“foobar”,然后从当前目录向上走,直到找到foobar。