Sviluppo Web - URL relativi file senza duplicazione
-
11-10-2019 - |
Domanda
Ho un sito con index.php
nella cartella principale, immagini in /img
, e overview.php
in /content
. Ho un file sidebar.php
che è incluso in entrambe le index.php
e overview.php
. Come devo fare riferimento a /img/image.gif
se includo un collegamento in ogni file?
La posizione di image.gif
cambia rispetto alla posizione del file che vi fa riferimento.
Utilizzando /img/image.gif
in sidebar.php
lavorerà in index.php
, ma non riesce per il file che si trova a /content/overview.php
.
L'unica soluzione che posso vedere è quello di includere un sidebar.php
separato in ogni sotto-directory, o includere una directory /img
in ogni sub-directory.
Il miglior consiglio che posso trovare è quello di utilizzare il <base
> tag HTML come suggerito qui:
cambiare i percorsi relativi collegamenti per i contenuti inclusi in PHP
Tuttavia, lo stesso link, SamGoody suggerisce che il <base
> tag is no longer properly supported in Internet Explorer, since version 7.
Vorrei qualche informazione sulla questione prima di impegnarsi in un corso d'azione.
Grazie.
EDIT: Sto usando l'approccio sbagliato sotto con "../"
Esempio-
root / index.php:
...
<link rel="stylesheet" type="text/css" href="style.css" />
<title>title</title>
</head>
<body>
<?php include('include/header.php'); ?>
<?php include('include/menu.php'); ?>
...
root / include / header.php:
...
<div id="header">
<span class="fl"><img src="img/dun1.png"/></span><span class="fr"><img src="img/dun2.png"/></span>
...
root / content / overview.php:
...
<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'); ?>
...
Soluzione
Utilizzando /img/image.gif in sidebar.php lavorerà in index.php, ma non riesce per il file che si trova a /content/overview.php
Ma non dovrebbe. Il /
precede rende un percorso assoluto che funziona da qualsiasi punto sul server. Se questo non funziona per voi, c'è un problema da qualche parte - in quel caso, inviare alcuni esempi.
A meno che non si prevede di spostare l'intero sito in un uno giorno sotto-directory, o le immagini passare a un Content Delivery Network (entrambe le azioni richiederebbe riscrivere gli indirizzi) si può tranquillamente utilizzare URL assoluti.