2012-08-25 51 views
5

我有一个网站由GitHub托管使用Jekyll,我已经(成功)使用内部定义的脚本在每个布局,将从他们的数组中产生一个随机标语。麻烦链接外部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

编辑:对不起,我当时使用“<link>”,当我的意思是“<script>”。这样就消除了“您使用错误标签”的解决方案! :P

EDIT2:全<script>(同样,位于_layouts/default.html HTML文件)是这样的:<script type="text/javascript" href="../scripts/tagline.js"></script>

回答

4

要使用的脚本调用的属性是src,而不是href。例如:

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

此外,我强烈建议使用站点根(又名docroot)而不是相对于文件的路径。这样你就可以在多个地方使用相同的呼叫,并且它总是会打到正确的位置。要使用docroot相对URL,请使用/开始路径。

假设你的脚本位于http://example.com/scripts/tagline.js,你打这个电话是:

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

如果不使用文档根目录,你会不断地有不同的地方在HTML文件调用脚本来调整路径位于树上。如果所有的文件都在同一个地方,这并不是什么大不了的事情,但这是一个很好的习惯,以避免问题的发生。

+0

Derp,谢谢!我知道这是我在做错误的HTML。 – ChaoticWeg

+0

每个人都完成了相同或类似的事情数百万次。有时它只是需要另一双眼睛。很高兴你得到它。 –