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);

私はバックエンド(ウェブルートの外)にテンプレートを持っており、次のようにコーディングすると次のようになります。

<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 に答える