2012-08-25 11 views
5

私はJigylを使用するGitHubによってホストされているサイトを持っており、配列からランダムなタグラインを生成する各レイアウトで内部的に定義されたスクリプトを(正常に)使用しています。外部JavaScriptとJekyllをリンクする際に問題があります

私はこのスクリプトを外部tagline.jsに移動しようとしていますが、これまでのところ失敗しています。

ここでは基本的なキャッチフレーズ生成スクリプトだ、場合には、この原因コードで何かがあります(私は、そのシンプルさに、正直、疑いそれは、それは可能性が常にあります):

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

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

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

私が言ったように、内部ではうまく動作しますが、外部にリンクしようとしてもうまくいきません。私はそれがちょうど私が<script>を指しているところのちょうど事だと確信しています:<script>を含むHTMLファイルは_layouts/default.htmlにありますが、スクリプトはscripts/tagline.jsにあります。

編集:申し訳ありませんが、実際には「<script>」を意味するときは「<link>」を使用していました。そのため、「間違ったタグを使用しています」という解決策がなくなりました! :P

EDIT2:フル<script>(再び、_layouts/default.htmlでHTMLファイル内にあります)これです:<script type="text/javascript" href="../scripts/tagline.js"></script>

答えて

4

スクリプトの呼び出しに使用する属性はsrc代わりのhrefです。例:

また、ファイルに関連する代わりに、サイトルート(別名docroot)からのパスを使用することを強くおすすめします。そうすれば、複数の場所で同じ通話を使用でき、常に正しい場所に通話できます。 docrootの相対URLを使用するには、パスを/で開始します。

スクリプトがhttp://example.com/scripts/tagline.jsに配置されていると仮定すると、あなたはなるだろうコールは次のとおりです。

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

ドキュメントルートを使用せずに、あなたは常にHTMLファイル、スクリプトを呼び出す場所に応じてパスを調整する必要があります木の中にあります。すべてのファイルが同じ場所にある場合はそれほど大したことではありませんが、問題を避けるためには良い習慣です。

+0

Derp、ありがとう!私はhtmlで間違っていたことが分かっていました。 – ChaoticWeg

+0

誰もが同じようなことを何度もやり遂げました。時にはもう一組の目がかかることもあります。あなたがそれを得てうれしい。 –

関連する問題