我有以下目录结构:
/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__'
常量失败?
答案 0 :(得分:0)
您不应在模板中使用realpath(dirname(__FILE__))
。这是系统的路径,而不是您的用户可以访问的路径。
如果你的网络根目录是 webroot / ,那么href="/static/css/style.css"
就可以了。
此外,您的问题与斜杠和反斜杠无关,两者都适用于Windows。