即使文件存在,使用dirname(__ FILE__)附加样式表也不起作用

问题描述:

我有一个PHP类为我的html文件创建了一个标头。它包含了,并且该文件再次包含在内。因此,我认为dirname(__FILE__)函数可以工作..但它说它找不到样式表..即使文件存在,使用dirname(__ FILE__)附加样式表也不起作用

我在os上使用mamp,并且当我从dirname(__FILE__)./../stylesheets/stylesheet.css获取的路径进入终端时,文件被发现..我很确定这条路是正确的。

这可能是什么原因?我用dirname(__FILE__)一切的时候,我的包含文件,该工程..

感谢

 
EDIT: 

Files and directories: 
/data/main.php 
/stylesheets/stylesheet.css 
/public/index.php 

In the main.php:
public function createHeader(){ `$stylesheetpath = dirname(__FILE__) . "/../stylesheets/stylesheet.css";` `$header = "\n";` return $header }
+2

请问您可以粘贴一些代码,这样我们可以帮助您...通常应该工作 – 2009-11-15 19:17:44

的相对路径应该没问题。

<LINK REL=StyleSheet HREF="../stylesheets/stylesheet.css" TYPE="text/css"> 

这里的绝对路径相对于文档根而不是文件系统是绝对路径。

dirname(__FILE__)适用于包含服务器端脚本文件,但不适用于客户端使用的路径。简而言之,链接标记是指示浏览器继续并请求该文件的指令。

+0

“dirname(__ FILE__)适用于包含脚本文件服务器端,但不适用于客户端使用的路径。谢谢你不知道! :) – Johannes 2009-11-15 19:29:44

编辑:阅读问题不正确......

使用

<link rel="stylesheet" href="/stylesheets/stylesheet.css" type="text/css"/> 

对CSS

从你的文件结构,/stylesheets/是在公众接触不到的地方,它必须被置于其内/public/浏览器检索文件的文件夹:

/data/main.php 
/public/stylesheets/stylesheet.css 
/public/index.php 

即使文件main.php工作,该文件由浏览器查看是index.php,所以相对路径将是stylesheets/stylesheet.css

+0

非常感谢:D – Johannes 2009-11-16 08:49:41

这是partial case-sensitivity在Mac OSX上的问题吗?