__FRONTEND__常常无法正常工作

时间:2012-05-17 13:43:41

标签: php const

我有以下目录结构:

/webroot
    /static
        /img
        /css
          - style.css
        /js
        /pdf
        /mp3
        /mp4
    - index.php

在我的'index.php'我有以下代码:

// define the frontend path constant
$frontend = realpath(dirname(__FILE__));
define('__FRONTEND__', $frontend);

我的后端(webroot外部)有我的模板,当我编写这样的代码时:

<link type="text/css" 
      rel="stylesheet" 
      href="<?php echo __FRONTEND__; ?>/static/css/style.css"
/>

未显示CSS代码。我也没有收到警告。当我查看来源时,我看到:

<link type="text/css" 
      rel="stylesheet" 
      href="C:\xampp\htdocs\projectx\webroot/static/css/style.css"
/>

在这里您可以看到不同的斜杠:'\' vs '/'。奇怪的是,使用相同类型的结构不会在我的后端常量'__BACKEND__'中失败,我在'index.php'中也有{<1}}:

// define the frontend path constant
$backend = realpath(dirname(__FILE__) . '/../backend');
define('__BACKEND__', $backend);

为什么'__FRONTEND__'常量失败?

1 个答案:

答案 0 :(得分:0)

您不应在模板中使用realpath(dirname(__FILE__))。这是系统的路径,而不是您的用户可以访问的路径。

如果你的网络根目录是 webroot / ,那么href="/static/css/style.css"就可以了。

此外,您的问题与斜杠和反斜杠无关,两者都适用于Windows。