我正在用PHP开始一个项目,我想从一开始就正确地组织我的文件(不像我的上一个项目,几乎每个文件都在一个目录中)。问题如下,我将用一个例子来描述:
取以下文件:index.php、includes/header.php和css/common.css。Index.php '包含'头文件(就像许多其他PHP文件一样)。然后,头部调用common.css,以便它的html元素可以被正确放置。Common.css还将为index.php和其他文件中的通用元素提供样式。
注意,由于包含了头文件,当头文件调用common.css时,它会从调用it的文件的位置调用;在本例中,是index.php。但是,如果我添加,比如说,modules/friends.php并调用它的头文件,它将在错误的位置查找CSS文件!
最初,我试图通过在调用CSS文件时使用实际路径来解决这个问题。然而,我的本地机器和web服务器的目录布局不同,因此我不能简单地调用/var/www/whatever。
谁能帮助我或重定向到一个地方,这类事情的记录?
谢谢,
典范
始终指定绝对路径到您的所有资源:.css
, .js
,图像等…
然而,我的本地机器和web服务器有不同的目录布局,因此我不能简单地调用/var/www/whatever。
。Web路径与本地文件系统路径不同。当您在web中指定路径时-根符号/
指定webroot
(您的项目所在的目录),而不是您的文件系统根。
恭喜你发现了一个大问题。
是的,这总是一个你一开始就需要回答的重要问题。
我终于学会了——这是在相当多年之后——尽我最大的努力使开发机器(比如我的PC)上的文件结构与主机(例如Linux主机)上的文件结构完全相同。仅这一件事就使我免于无尽的悲伤。
如果你能做到这一点,那么剩下的就是小菜一碟了,相信我。您可以将文件放在两台机器上任何您想要的目录中,任何您认为有意义的目录中。你可以弄清楚哪些文件应该放在哪里。如果你不尝试在两台机器上设置几乎相同的文件目录,当你编辑的时候,你会永远想知道,"嘿,我在什么机器上?如果我在主机上,那么very important-file。php在/top - level中,其他的都在它下面。但如果我在PC上,very important-file。php在/my-files中,然后其他文件在不同的级别,我是否删除了那个文件,然后……"我的上帝,不要让我思考,更不用说思考那些愚蠢的垃圾了。
您可以处理并记住根在不同机器上的不同位置,但除此之外,忘记它。
现在,当你开始运行你的东西时,你总是会知道这些东西的片段在哪里:CSS文件,JS文件,等等。另外,你可以(也许;如果幸运的话)在PC 或主机上调试代码同样好,没有任何差异,也没有任何更改。另外,当你上传你的新代码时,你可以通过FTP把它放到一个你喜欢的地方。(这有一个非常好的辅助好处,您可以在开发机器上移动文件到任何您想要的地方。)
小菜一碟!不要错过这个机会,为自己节省几天或几周的时间。
总是IMHO。