5

我有一个由 GitHub Pages 托管的站点,它使用 Jekyll,并且我已经成功地在每个布局中使用了一个内部定义的脚本,该脚本将从它们的数组中生成一个随机的标语。

我正在尝试将此脚本移动到 external tagline.js,但到目前为止我一直没有成功。

这是基本的标语生成脚本,以防代码中的某些内容导致此问题(老实说,由于其简单性,我对此表示怀疑;但总是有可能):

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

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

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

就像我说的那样,它在内部时工作正常,但当我尝试链接到外部时却不行。我很确定这只是我指向的<script>情况:包含的 HTML 文件<script>位于_layouts/default.html,但脚本位于scripts/tagline.js

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

1 回答 1

5

您要用于脚本调用的属性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 文件在树中的位置不断调整路径。如果所有文件都在同一个地方,那没什么大不了的,但是养成避免以后出现问题的好习惯。

于 2012-08-25T13:56:24.853 回答