调用样式表的逻辑

时间:2014-09-26 13:37:14

标签: php stylesheet

我对此感到困惑,我希望有人可以在高水平上表明我的想法是错误的。

我有一个简单的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。

任何了解这一点的提示都将非常感激。感谢。

3 个答案:

答案 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分钟直接设置它们的人戴上帽子。

谢谢大家。