2012-08-25 12 views
5

Ho un sito ospitato da GitHub che utilizza Jekyll, e sono stato (con successo) utilizzando uno script definito internamente in ogni layout che genererà una tagline a caso da un array di loro.problemi con il collegamento esterno con JavaScript Jekyll

Sto cercando di spostare questo script per un esterno tagline.js, ma finora non ho avuto successo.

Ecco lo script di base di generazione di slogan, nel caso ci sia qualcosa nel codice che causa questo (cosa di cui dubito, onestamente, grazie alla sua semplicità, ma è sempre una possibilità):

 
var tags = [ 'tag1', 'tag2', 'tag3' ];

function getTag() { 
    return tags[Math.floor(Math.random() * tags.length)]; 
} 

$(document).ready(function() { 
    $("#tagline").text(getTag()); 
}); 

Come ho detto, funziona benissimo quando è interna, ma non è così quando provo il collegamento a esterni. Sono abbastanza sicuro che è solo un caso di cui sto puntando il <script> a: il file HTML contenente il <script> è in _layouts/default.html, ma lo script è in scripts/tagline.js.

MODIFICA: Scusa, stavo usando "<link>" quando in realtà intendevo "<script>". Quindi elimina la soluzione "stai usando il tag sbagliato"! : P

EDIT2: La piena <script> (ancora una volta, che si trova in un file HTML in _layouts/default.html) è questo: <script type="text/javascript" href="../scripts/tagline.js"></script>

risposta

4

L'attributo che si desidera utilizzare per una chiamata script è src invece di href. Per esempio:

<script type="text/javascript" src="../scripts/tagline.js"></script> 

Inoltre, vi consiglio vivamente utilizzando percorsi dalla radice sito (aka docroot) invece che relativo al file. In questo modo puoi usare la stessa chiamata in più posti e colpirà sempre la posizione corretta. Per utilizzare un URL relativo a docroot, si avvia il percorso con un /.

supponendo che si sta script si trova a http://example.com/scripts/tagline.js, la chiamata si dovrebbe fare è:

<script type="text/javascript" src="/scripts/tagline.js"></script> 

Senza utilizzare il docroot, sarai sempre necessario modificare il percorso a seconda di dove il file HTML chiamando lo script si trova nell'albero. Se tutti i file si trovano nello stesso posto, non è un grosso problema, ma è una buona abitudine entrare per evitare problemi lungo la strada.

+0

Derp, grazie! Sapevo che era qualcosa che stavo facendo male nell'html. – ChaoticWeg

+0

Ognuno di noi ha fatto la stessa cosa o una cosa simile per un milione di volte. A volte basta un altro paio di occhi. Sono contento che tu abbia funzionato. –

Problemi correlati