PHP: Documento problema directory principale backslash
Domanda
Sto cercando di creare un collegamento a un foglio di stile nel mio file di intestazione con $ _SERVER [ "DOCUMENT_ROOT"] come segue:
<head>
<?php
print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
?>
<title>eLMS</title>
</head>
Dal momento che sto testando a livello locale, sto ottenendo il percorso come:
<head>
<link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' /> <title>eLMS</title>
</head>
E questo non è il rendering in Firefox. Lo fa in IE comunque. Questo è ovviamente un problema di convalida. MA, ho provato lo stesso codice su un server - con gli stessi risultati. : (
Come posso fare per correggere questo? Il prodotto finale può o non può essere eseguito su un server locale, quindi ho bisogno del codice di essere flessibili ..
sto usando Abyss Webserver x1 con PHP 5.2.8
Devo utilizzare i percorsi assoluti - perché io non voglio copiare la cartella includere ad ogni sottodirectory della app. Ho bisogno di essere in grado di fare riferimento ad esso da ogni posizione.
Soluzione
Basta usare questo:
<head>
<link href='/include/style.css' rel='stylesheet' type='text/css' />
<title>eLMS</title>
</head>
In alternativa, se viene utilizzato a livello locale:
<head>
<link href='../include/style.css' rel='stylesheet' type='text/css' />
<title>eLMS</title>
</head>
La radice del documento è per uso interno (all'interno di PHP), non per nel codice HTML.
Altri suggerimenti
Provare a utilizzare:
$_SERVER['HTTP_HOST']
Non utilizzare un percorso assoluto del file system, utilizzare un percorso relativo alla (ma non compreso) la radice del documento. In questo caso solo /include/style.css
.
Per usare i file locali dal browser, utilizzare lo schema file
.
file://C:/dir/file.ext
file:///dir/file.ext
Non sono sicuro se avete bisogno di due o tre barre, probabilmente due sulla finestre con la lettera di unità, tre su * nix con la barra principale, anche se mi sembra di ricordare di vedere tre barre con la lettera di unità. Provalo! : P
Prova a usare la costante DIRECTORY_SEPARATOR
. Restituisce \ su sistemi Windows e / sui sistemi * nix.
Prima di tutto, la radice del documento è letteralmente la directory che / del server Web si trova a. Di solito non si desidera utilizzare questo con qualsiasi contenuto sul web. Usa / invece.