2012-11-13 64 views
0

Ooookay。使用绝对VS相对路径调用资源在php

所以,我有这个烦人的问题。我在一个php/html文档中调用了一个css文件,并且得到了奇怪的结果 - 可能是因为我无法理解某些内容。

我在我的应用程序(constants.php)定义的几个常量:

define("ROOT", dirname(dirname(__FILE__))); 
define("DS", DIRECTORY_SEPARATOR); 
define("RESOURCES", ROOT . DS . "resources" . DS); 
define("CSS", RESOURCES . "css" . DS); 

我的文件夹结构看起来像:
本地主机(发展的根文件夹供参考:这是C:\用户\凯尔\ SkyDrive的\ WWW)
 框架
   库(文件夹)
      constants.php(文件)
个   资源(文件夹)
      CSS(文件夹)
       武侠-blue.css
   次(文件夹)
     预订(文件夹)
        dashboard.php(文件)

现在0

,在我dashboard.php文件,我链接css文件夹,如下所示:

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

现在到了这个问题:当我使用HREF =“/框架/资源/ CSS /武侠-blue.css “,CSS拉得非常好,看起来都很棒。唯一的问题是,我想要的东西,如把它拉:

href="<?php echo(CSS); ?>wuxia-blue.css" 

解析为C:\用户\凯尔\ SkyDrive的\ WWW \框架\资源\ CSS \武侠-blue.css这是资源的正确路径,但是当我使用它时,页面上没有CSS拉动。

任何想法?

回答

0

这是因为你的CSS常量包含根。

你可以只str_replace函数这虽然

href="<?php echo(str_replace(ROOT,"",CSS)); ?>wuxia-blue.css" 
+0

嗯。那也行不通。这会导致对以下链接的http请求:/framework/booking/\resources\css\wuxia-blue.css –

+0

嗯,如此使用您的想法我想出了解决方案。我定义了一个名为SUBROOT_REL的附加常量,并将其定义为DS。 “框架”。 DS。我也将DS的值更改为“/”,然后使用str_replace(ROOT,SUBROOT_REL,CSS)。复选标记为你..... –

+0

太棒了。我很高兴它指出你在正确的方向! –