index.php
のサイトは/img
、overview.php
は/content
の画像がルートフォルダにあります。私はsidebar.php
ファイルを持っており、それはindex.php
とoverview.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'); ?>
...
これは、私のためにいくつかのことを明確にするのに役立ちました。私は/と/を試しましたが、それを働かせることはできません。 overview.phpで "style.css"を "/root/style.css"に変更した場合、私はスタイルを取得しますが、イメージに同じアイデアを適用することはできません。 "/ root /"を使用することは、おそらく私のローカルホストのルートではないので、この例では貧弱です。私が参照している "/ root"は "var/www/root"にあります。相対パス/絶対パス、あるいはPHPが知っていないもの、または私のapacheサーバーについてはわかりません誤って構成されているか、または上記のすべてです。 – eshriek
@eshriekあなたのApache Webルートは何ですか? 'www'か' root'? –
ApacheのWebルートはwwwです – eshriek