无法将外部JavaScript与Jekyll链接

时间:2012-08-25 02:57:01

标签: javascript jquery github jekyll

我有一个由GitHub托管的站点,它使用了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>

1 个答案:

答案 0 :(得分: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>

不使用docroot,您将不断调整路径,具体取决于调用脚本的HTML文件在树中的位置。如果所有文件都在同一个地方,那不是什么大不了的事,但这是一个很好的习惯,可以避免出现问题。