2011-01-14 9 views
0

index.phpのサイトは/imgoverview.php/contentの画像がルートフォルダにあります。私はsidebar.phpファイルを持っており、それはindex.phpoverview.phpの両方に含まれています。各ファイルにリンクを含める場合、どのように私は/img/image.gifを参照する必要がありますか?
image.gifの場所は、その場所を参照するファイルの場所に対して相対的に変更されます。
sidebar.php/img/image.gifを使用するとindex.phpで動作しますが、/content/overview.phpにあるファイルでは失敗します。
私が見ることができる唯一の解決策は、各サブディレクトリに個別のsidebar.phpを含めるか、すべてのサブディレクトリに/imgディレクトリを含めることです。ここで示唆したように、私は見つけることができます
最善の提案は<base> HTMLタグを使用することです:
Change relative link paths for included content in PHPウェブ開発 - ファイルを複製しない相対URL

しかし、同じリンクでは、SamGoodyが示唆、その<base>タグis no longer properly supported in Internet Explorer, since version 7.

I行動の過程にコミットする前に、問題についてのいくつかの洞察が好きです。

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

EDIT:

... 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<title>title</title> 
</head> 
<body> 
<?php include('include/header.php'); ?> 
<?php include('include/menu.php'); ?> 
... 

ルート//header.phpのを含める:

... 
<div id="header"> 
<span class="fl"><img src="img/dun1.png"/></span><span class="fr"><img src="img/dun2.png"/></span> 
... 
私は "../"

例 -

ルート/ index.phpのが持つ以下の間違ったアプローチを使用しています

ルート/コンテンツ/ overview.php:

「sidebar.phpに/img/image.gif使用は
... 
<link rel="stylesheet" type="text/css" href="../style.css" media="screen" /> 
<title>Overview</title> 
</head> 
<body> 
<?php include('../include/header.php'); ?> 
<?php include('../include/menu.php'); ?> 
... 

答えて

3

のindex.phpに動作しますが、それは/content/overview.php

にあるファイルで失敗したしかし、それはshouldn t。前述の/は、サーバー上の任意のポイントから動作する絶対パスになります。これがうまくいかない場合は、どこかに問題があります。その場合、いくつかの例を投稿してください。

サイト全体を1日以内にサブディレクトリに移動したり、イメージをコンテンツ配信ネットワークに移動する予定がない場合は、絶対URLを安全に使用できます。

+0

これは、私のためにいくつかのことを明確にするのに役立ちました。私は/と/を試しましたが、それを働かせることはできません。 overview.phpで "style.css"を "/root/style.css"に変更した場合、私はスタイルを取得しますが、イメージに同じアイデアを適用することはできません。 "/ root /"を使用することは、おそらく私のローカルホストのルートではないので、この例では貧弱です。私が参照している "/ root"は "var/www/root"にあります。相対パス/絶対パス、あるいはPHPが知っていないもの、または私のapacheサーバーについてはわかりません誤って構成されているか、または上記のすべてです。 – eshriek

+0

@eshriekあなたのApache Webルートは何ですか? 'www'か' root'? –

+0

ApacheのWebルートはwwwです – eshriek

関連する問題