我对此感到困惑,我希望有人可以在高水平上表明我的想法是错误的。
我有一个简单的PHP程序
- index.php includes a file /common/header.php
- header.php links to the stylesheet.
问题1我认为困扰了其他人,但我没有看到直接回答问题的回复。 如果我将样式表放在根文件夹中(与index.php在同一个地方),那么我可以链接到没有路径的文件
<link rel="stylesheet" type="text/css" href= "style.css" />
关键是样式表是相对于index.php而不是header.php,当它包含在index.php中时。这是对的吗?
问题2真的很奇怪。当我把文件放在一个文件夹中时,我可以链接到它
<link rel="stylesheet" type="text/css" href= "/common/style.css" />
或
<link rel="stylesheet" type="text/css" href= "common/style.css" />
或
<link rel="stylesheet" type="text/css" href= "styles/style.css" />
等等。
但是,如果我将文件夹命名为css,则会失败。任何人吗?
还有一点可能是相关的。我正在使用WAMP,并且该网站设置了虚拟主机。
也就是说,我在Windows / System 32和Apache httpd.vhosts.conf文件的hosts文件中设置了主机。
这意味着index.php文件位于根目录中,而/common/style.css在功能上等同于common / style.css。
任何了解这一点的提示都将非常感激。感谢。
答案 0 :(得分:0)
首先,html中路径的相对链接与PHP中的路径完全不同。
在PHP中你的文档根目录可能是/ var / www / example /而在html中这可能是http://www.example.com/
读取HTML的客户端浏览器不知道你的html在哪里以位置方式回显,而不是输入脚本(在这种情况下:http://www.example.com/index.php)
所以,如果我只是参考
<link rel="stylesheet" type="text/css" href= "/css/style.css" />
并将样式表放在/var/www/example/css/style.css中,然后将header.php的位置和echo的位置无关紧要,只要它与进入脚本(在这种情况下为index.php)
答案 1 :(得分:0)
问题1: 你的问题不是PHP,而是HTML。浏览器收到HTML源后会应用CSS。因此,当您的index.php是输出内容的脚本时,您在html中引用的所有资源都将相对于此文件所在的路径。
问题2:
和...之间的不同
<link rel="stylesheet" type="text/css" href= "/common/style.css" />
和<link rel="stylesheet" type="text/css" href= "common/style.css" />
是只有/ common驻留在Web服务器的根目录中,版本1才会起作用。它是一个绝对路径(以/开头),而版本2是相对的,如果您的文件是/xyz/common/style.css,它也可以工作。
我不知道为什么这不应该与名称css一起使用。你应该重试这个。
答案 2 :(得分:0)
谢谢大家。那很快。
总结一下我怀疑很多人都有的包含问题。样式表的路径必须相对于index.php而不是header.php。
我解决了另一个问题。一些文件无意中被复制到C:/ wamp / www,即普通根。我清理了所有这些,拒绝玩文件夹调用/ css的奇怪问题消失了。所以这是一个双重问题,从1.混乱和2.与虚拟主机无法正常工作有关。至少雾已经解除了。谢谢大家。
对于DarkMukke,&#34;任何人?&#34;是的。当他们意识到这个问题与他们自己的迷雾一样多的技术时,新手们最有可能使用它来传达尊重。或者在极客说话的时候,新手正在给那些给他们5分钟直接设置它们的人戴上帽子。
谢谢大家。