Domanda

Ho spesso confusa con l'attributo href, il tag link, e il tag di base. Non sono sicuro come collegare correttamente il file CSS in modo un file può essere spostato in una sottocartella e ancora del lavoro (ad esempio in seguito) così sono andato avanti e ha scoperto come il href funziona quando si specifica una posizione.

Per vostra conoscenza, sto lavorando con il mio localhost, quindi non ho la cartella htdocs principale e all'interno di questo, non ho più cartelle, ciascuna per un progetto su cui sto lavorando. Si finisce per guardare in questo modo:

localhost/index.php (which redirects to localhost/home/index.php)
localhost/home/
localhost/zune/
localhost/school/
localhost/aeac/

E in generale il layout di una cartella sarà qualcosa in queste righe:

localhost/aeac/images/
localhost/aeac/stylesheets/
localhost/aeac/scripts/

Proseguendo, diciamo che ho il file localhost/aeac/test/index.html e in essa, ho 4 collegamenti per il test. Ho scoperto che

<a href="/"> will link to "localhost/"
<a href="./"> will link to "localhost/aeac/test/" (the directory the file is in.)
<a href="../"> will link to "localhost/aeac/" (the directory above the file.)
<a href="about.html">will link to "localhost/aeac/test/about.html" (the directory the file is in.)

Ora che ho capito href, ho bisogno di capire come collegamento CSS correttamente.

Immaginate gli sguardi directory del sito in questo modo:

localhost/aeac/
localhost/aeac/images/
localhost/aeac/stylesheets/
localhost/aeac/scripts/

e proprio nel /aeac/ cartella che ho index.html. Il file ha un tag link che assomiglia a questo:

<link rel="stylesheet" href="stylesheets/main.css" />

In modo che funziona bene, principale è fondamentalmente la struttura del sito / tema e viene incluso in ogni file. Il problema si verifica quando devo fare una sottocartella. Ora abbiamo un localhost/aeac/users/*username*/index.html. Il sito utilizza ancora il main.css, ma il link non funziona più perché non v'è alcuna cartella stylesheets lì dentro.

Ecco dove mi sono bloccato, immagino che dovrei usare il tag di base per risolvere il mio problema, ma sto ancora confuso su come sarebbe scritta. Inoltre, so che potrei basta cambiare il tag link per tutte le cartelle i file degli utenti, ma mi piacerebbe sapere come farlo in questo modo (se questo è ancora possibile.)

È stato utile?

Soluzione

Credo che si desidera in questo modo:

<link rel="stylesheet" href="/aeac/stylesheets/main.css" />

Questo inizia con /, così sarà sempre attraversare fino dalla radice, non importa dove si trova la tua pagina (cioè ad /aeac/index.html o /aeac/users/foo/index.html). Ora, se avete il controllo del tag in ogni copia di index.html (che probabilmente si fa), si potrebbe anche navigare verso l'alto con .., a ../../stylesheets/main.css, ma la navigazione dalla radice è probabilmente più semplice.

Altri suggerimenti

con quello che hai scoperto su href, basta combinare che la conoscenza di navigazione con il tuo approccio finale:

Quindi, se avete questo:
localhost / gasolina /
localhost / gasolina / immagini /
localhost / gasolina / fogli di stile /
localhost / gasolina / scripts /
localhost / gasolina / utenti /

e siete in localhost / gasolina / utenti / index.html basta andare una directory fino (../ per entrare in gasolina) e quindi passare su:

../ fogli di stile / style.css

Spero che questo aiuti

È possibile avere un percorso assoluto per il foglio di stile utilizzando / come base

<link rel="stylesheet" href="/aeac/stylesheets/main.css" />

È possibile utilizzare: /stylesheet/main.css

o ../../ foglio di stile / main.css

Non importa quale sia il "utente" cartella è denominata, ../ .. andrà sempre 2 cartelle indietro:

/aeac/users/user1/index.html /aeac/users/user2/index.html

../../ foglio di stile sarà sempre arrivare a / gasolina / foglio di stile

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top