我正在用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。
任何人都可以帮助我或将我重定向到记录此类事情的地方吗?
谢谢,
帕拉贡
答案 0 :(得分:6)
始终为您的所有资源指定绝对路径:.css
,.js
,图片等...
http://en.wikipedia.org/wiki/Absolute_path
但是,我的本地机器和Web服务器有不同的目录布局,因此我不能简单地调用/ var / www / whatever。
你可以。 Web路径与本地文件系统路径不同。在web中指定路径时 - 根符号/
指定webroot
(项目所在的目录),而不是文件系统根目录。
答案 1 :(得分:0)
祝贺你认识到一个巨大的问题。
是的,这一直是您在开始时需要回答的重要问题。
我终于学会了 - 这是在几年之后 - 尽力使开发机器上的文件结构(比如我的电脑) 正好 类似于主机上的文件结构(例如Linux主机)。只有这一件事让我无休止地忍受着悲伤。
如果你能做到这一点,那么剩下的就是小菜一碟,相信我。您可以在两台计算机上将文件放在您想要的任何目录中,只要它对您有意义。你可以弄清楚应该去哪些文件。
如果您不想在两台计算机上尝试几乎相同的文件目录设置,那么您将永远想知道,当您编辑时,“嘿,我在哪台机器上?如果我在主机,然后非常重要的文件.php在/ toplevel,其他一切都在它下面。但如果我在PC上,那么非常重要的文件.php就在/ my-files中,见,然后其他文件在不同的级别,我删除了该文件和...“我的上帝,不要让我思考,更不要想想 盲目的废话。
你可以处理并记住不同机器上不同位置的根,但除此之外,别忘了。
现在,当你来运行你的东西时,你总会知道那些东西的位置:CSS文件,JS文件,等等。你可以(也许;如果你很幸运的话)在PC上强烈调试你的代码 或 ,没有任何差异,也没有任何变化。加上上传新代码后,您可以将其直接发送到主机,并将其按照您喜欢的方式插入主机中。 (这样可以在您的开发机器上随处移动文件,从而获得非常好的辅助优势。)
一块蛋糕!不要错过这个机会来节省自己几天或几周(字面上)的时间。
总是恕我直言。