是否可以将脚本包括移动到页面底部?如果是这样,我怎么能完成它?
这是head元素的一部分,其中包含一些js。
<head>
<link rel="stylesheet" href="/2cc614b628d110d743e8e0b72c52ea2ce7c90f9d.css?meteor_css_resource=true">
<script async="" src="//www.google-analytics.com/analytics.js"></script>
<script type="text/javascript" src="/43f99073f97b9a8a6279cb0eb0f7e5b32dc2b4ab.js"></script>
<script type="text/javascript">
if (typeof Package === 'undefined' ||
! Package.webapp ||
! Package.webapp.WebApp ||
! Package.webapp.WebApp._isCssLoaded())
document.location.reload();
</script>
答案 0 :(得分:1)
我找到了一种方法,使用inject-initial包(https://atmospherejs.com/meteorhacks/inject-initial)
在身体结束标记之前从头部开始的所有javascript文件以下代码段在服务器上运行时,会在结束</body>
标记之前将所有脚本从头部移动到底部。除了流星__meteor_runtime_config
脚本标记。
Inject.rawModHtml('moveScriptsToBottom', function(html) {
// get all scripts
var scripts = html.match(/<script type="text\/javascript" src.*"><\/script>\n/g);
// remove all scripts
html = html.replace(/<script type="text\/javascript" src.*"><\/script>\n/g, '');
// add scripts to the bottom
return html.replace(/<\/body>/, scripts.join('') + '\n</body>');
});
答案 1 :(得分:0)
Meteor将您的所有文件打包成一个大文件,所有文件都用JavaScript闭包分隔。
现在,Meteor优先在/lib
文件夹中加载文件,然后按字母方式加载文件,并以递归方式工作。所以加载的第一个文件位于文件中最深的/lib/lib....
文件夹中(虽然我没有看到为什么你需要比1-2级更深的东西)。 Meteor还会加载main.*
个文件最后。
现在,如果您真的希望Meteor最后加载您的文件,您必须不将它们放在/lib
文件夹中,并为其指定一个与main.*
匹配的文件名
子目录中的文件在父目录中的文件之前加载, 以便首先加载最深子目录中的文件和文件 在根目录中最后加载。
在目录中,文件按字母顺序加载 文件名。
如上所述排序后,所有文件都在名为的目录下 lib先于其他一切移动(保留其顺序)。
最后,所有匹配main。*的文件都会在其他所有文件之后移动 (保留他们的命令)。
答案 2 :(得分:-1)
我已经在html的末尾包含了脚本,但是之前我看到你正在调用google等的引用我认为那些应该总是在页面的顶部,因为它们必须在页面显示之前加载这样可确保在需要时可用。 :) 我对网络不太专业,但我现在正在使用html和js,我放在底部的脚本是我用于动画的,或者当我在一个完全加载的html元素中使用它时。