0

我有以下目录结构:

/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'

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

为什么我的'__FRONTEND__'常量失败了?

4

1 回答 1

0

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

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

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

于 2012-05-17T13:51:56.773 回答