2012-08-25 12 views
5

Mam stronę hostowaną przez GitHub, która używa Jekylla, i byłem (pomyślnie) używając wewnętrznego skryptu w każdym układzie, który wygeneruje losowy slogan z ich tablicy.Problemy z łączeniem zewnętrznego JavaScript z Jekyllem

Próbuję przenieść ten skrypt do zewnętrznego tagline.js, ale jak dotąd nie udało mi się.

Oto prosty skrypt generujący tagline w przypadku istnieje coś w kodzie tego przyczyną (w co wątpię, szczerze, ze względu na swoją prostotę, ale to jest zawsze możliwość):

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

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

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

Tak jak powiedziałem, działa dobrze, gdy jest wewnętrzny, ale nie działa, gdy próbuję połączyć z zewnętrznym. Jestem pewien, że to tylko przypadek, w którym wskażę <script>: plik HTML zawierający <script> jest w _layouts/default.html, ale skrypt jest w scripts/tagline.js.

EDYCJA: Przepraszam, użyłem "<link>", kiedy faktycznie miałem na myśli "<script>". To eliminuje rozwiązanie "używasz niewłaściwego tagu"! : P

EDIT2: Pełne <script> (ponownie, znajduje się w pliku HTML w _layouts/default.html) jest taka: <script type="text/javascript" href="../scripts/tagline.js"></script>

Odpowiedz

4

atrybut chcesz użyć do wywołania skryptu jest src zamiast href. Na przykład:

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

Również chciałbym polecić korzystanie ścieżki od korzenia serwis (aka docroot) zamiast w stosunku do pliku. W ten sposób możesz korzystać z tego samego połączenia w wielu miejscach i zawsze trafi w odpowiednie miejsce. Aby użyć względnego adresu URL dokumentu docroot, uruchom ścieżkę za pomocą /.

Zakładając jesteś skrypt znajduje się w http://example.com/scripts/tagline.js, wywołanie byś zrobić to:

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

Bez pomocą docroot, będzie stale trzeba ustawić ścieżkę w zależności od tego, gdzie plik HTML wywołanie skryptu znajduje się w drzewie. Jeśli wszystkie pliki są w tym samym miejscu, nie jest to wielka sprawa, ale jest to dobry nawyk, aby uniknąć problemów w drodze.

+0

Derp, dzięki! Wiedziałem, że to coś, co robiłem źle w html. – ChaoticWeg

+0

Wszyscy robili to samo lub coś podobnego milion razy. Czasem wystarczy jeszcze jedna para oczu. Cieszę się, że to się zaczęło. –

Powiązane problemy