1

私はphpが初めてで、これが非常に一般的な問題であることを理解しています。私はネット上で多くの関連する問題を読みましたが、ここではスタックオーバーフローで問題を解決しましたが、それらをうまく実装できませんでした。

次のようなディレクトリ構造のプロジェクトがあります。

Project/
     includes/
              header.php
              footer.php
              sidebar.php
     css/
              style.css
     index.php
     blog/
              index.php

ルートの index.php 内で、次のようにインクルードを取り込みます。

include 'includes/header.php';

そして、header.php の css ファイルは次のようになります。

<link rel="stylesheet" href="css/style.css">

これで、ルート内の index.php ファイルと、ルート内に配置されたその他のファイルで機能します。ただし、サブフォルダー内のすべてのページ (blog/index.php など) で壊れます。

私の主な質問は、プロジェクト内の css ファイルとインクルードを適切に参照して、ファイルが第 2 レベルのページにもアクセスできるようにする方法です。

注:
- ローカル サーバーで作業しています
- すべてのプロジェクト ファイルはルートの PROJECT フォルダーに含まれています - (localhost:8888/Project/index.php)

どんな助けでも大歓迎です。

ありがとうございました。

4

2 に答える 2

1

アプリケーションのルートから参照する必要があります。次のオプションを使用します

 <link rel="stylesheet" href="/css/style.css">

 <link rel="stylesheet" href="//domain.com/css/style.css">


 include $_SERVER['DOCUMENT_ROOT'].'/includes/header.php';

現在の方法では、ドメイン名のルート以外のファイルに対しては機能しません。それがしていることは次のとおりです。

あなたはhttp://example.com/にいて、あなたのサイトには css/style.css が含まれているため、ドメインに追加されています。ルート レベルではこれで問題ありません。http://example.com/myFile/andFolderにいる場合、先頭のスラッシュを含めない場合でもドメインに追加されます...したがって、http://example.comでスタイルを探しています/myFile/andFolder/css/style.css . 先頭にスラッシュを追加すると、サーバーに、ドメインのルートでこれを探したいと伝えます。

<link rel....ドメイン名の前に 2 つある 2番目のオプションは//、現在のページが https:// にある場合に、https:// 経由でホストする簡単な方法です。

于 2013-03-03T08:08:17.437 に答える
0

簡単な方法ですが、最善の方法ではありませんが、常に絶対パスにリンクできるということです:(私はお勧めしません)

<link rel="stylesheet" href="http://localhost/Project/css/style.css">

base_url 変数を含む構成ファイルを用意し、常に base_url を介して CSS やその他のものをリンクすることをお勧めします。

于 2013-03-03T08:08:43.837 に答える