我有一个由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>
答案 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文件在树中的位置。如果所有文件都在同一个地方,那不是什么大不了的事,但这是一个很好的习惯,可以避免出现问题。