0

画像ディレクトリ mysite/2012/5/15/image.jpg があり、mysite/ にヘッダーとフッターがあります。次に、データベースから image.jpg を取得し、ユーザーが送信したタイトルとコメント (ある場合) と共に別のページに表示します。header.php と footer.php 内で、同じく mysite/ ディレクトリにある css ファイルを指定します。私の質問は: 画像ディレクトリからヘッダーとフッターにアクセスする最良の方法は何ですか? 私がやっている方法は次のとおりです。

include('../../../header.php');
include('../../../footer.php');

しかし、これを行ってページを表示しようとすると、画像ディレクトリに存在しないため、css ファイルが読み込まれません。これを処理するために、ヘッダーとフッターに一連の if ステートメントを配置します。

       if(!strcmp($thisPage,"images")) {
          echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../../file.css\" media=\"screen,projection\" />";
          echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../../file2.css\" media=\"print\" />;";
       }
       else
       {
          echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"file.css\" media=\"screen,projection\" />";
          echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"file2.css\" media=\"print\" />";
       }

これを行うより良い方法はありますか?

前もって感謝します!

4

2 に答える 2

0

定数を使用することも、単に次を使用することもできます。

echo $_SERVER["HTTP_HOST"]; //outputs www.example.com

それはあなたにあなたのウェブサイトのドメインを与えます。

echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://". $_SERVER["HTTP_HOST"] ."/css/file.css\" media=\"screen,projection\" />";

ただし、ファイルシステムの場所を使用できないスタイルシートにリンクしているときにTravesty3が持っているものに正しいものは、CSSファイルのURLを使用する必要があります。

define("CSS_PATH", "http://mysite.com/css");

通常、サイトを開始するとき、最初に行うことの1つは、次のような定数を設定することです。

define('ROOT_DIR',$_SERVER['DOCUMENT_ROOT']);
define('SITE_URL','http://www.example.com/');
define('JS_DIR',SITE_URL . 'js/');
define('CSS_DIR',SITE_URL . 'css/');
于 2012-05-17T19:02:13.173 に答える
0

相対パスではなく絶対パスを使用することをお勧めします。

ディレクトリ構造を変更したいが、すべての絶対パスを置き換えるという大きな手間をかけたくない場合は、絶対パスをPHP変数または定数、あるいはApacheサーバー変数に格納できます。ディレクトリ構造が変更された場合、更新する必要がある変数は1つだけです。

define("CSS_PATH", "http://mysite.com/css");

echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"". CSS_PATH ."/file.css\" media=\"screen,projection\" />";

// OR

// add `SetEnv CSS_PATH "http://mysite.com/css"` to your Apache config file or envvars file

echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"{$_SERVER["CSS_PATH"]}/file.css\" media=\"screen,projection\" />";
于 2012-05-17T18:36:11.013 に答える