我正在使用Meteor构建一个仪表板,我已经从http://themeforest.net/购买了一个设计模板(HTML),并且无法找到如何将这个设计模板正确地集成到我的Meteor应用程序中。
问题很简单,我在尝试加载设计模板正常工作所需的css文件和js文件列表时遇到了问题。我认为文件没有按正确的顺序加载,这会导致错误。例如,一半的jquery插件无法工作,如果插件文件在jquery文件本身之前加载,可能会导致这种情况。我可以在网络中看到文件正在加载,但例如,函数$.sortable是不可用的。
加载样式表和javascript文件的正确方法是什么,以确保它们按正确的顺序加载?
第一个问题是我不知道该把这些文件放哪儿。这些文件对于我的应用程序的逻辑并不是必需的,所以我不想把它放在目录客户机中。另外,如果我将它们放置在client中,自动加载它们,那么我就无法控制它们加载的顺序。
因此,我将所有的模板设计依赖文件放在文件夹Public中,并尝试手动加载这些文件。
我尝试了以下方法来加载这些文件:
1.导入client/main.html文件中的所有文件:
<head>
<meta charset="UTF-8">
<title>ETL Web-Admin</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
<meta content="" name="description"/>
<meta content="" name="author"/>
<!-- ================== BEGIN BASE CSS STYLE ================== -->
<link href="/plugins/jquery-ui/themes/base/minified/jquery-ui.min.css" rel="stylesheet"/>
...
<!-- ================== END BASE CSS STYLE ================== -->
<!-- ================== BEGIN BASE JS ================== -->
<script src="/plugins/jquery/jquery-1.9.1.min.js"></script>
...
<script src="/plugins/jquery-cookie/jquery.cookie.js"></script>
<!-- ================== END BASE JS ================== -->
</head>2.导入client/main.js文件中的所有文件:
Meteor.startup(function () {
});
// <!-- ================== BEGIN BASE CSS STYLE ================== -->
import "../public/plugins/jquery-ui/themes/base/minified/jquery-ui.min.css"
...
// <!-- ================== END BASE CSS STYLE ================== -->
// <!-- ================== BEGIN BASE JS ================== -->
import "../public/plugins/jquery/jquery-1.9.1.min.js"
...
// <!-- ================== END BASE JS ================== -->顶部的两个方法都存在相同的问题,依赖项没有正确加载。
最后,要初始化设计模板,当加载了所有元素并且(用jquery术语来说)文档准备就绪时,我必须调用两个函数:
App.init()
// and
Dashboard.init()在传统的HTML格式中,可以这样做:
<script>
// when document is ready, do something
$(document).ready(function () {
App.init();
Dashboard.init();
});
</script>在流星上我该怎么做?
发布于 2016-06-21 21:16:22
使用projects Meteor的架构,您可以在客户端>样式表中使用css中的文件,在client > youNameTemplate.js中使用jquery
Template.youNameTemplate.rendered = function () {
App.init();
Dashboard.init();
}https://stackoverflow.com/questions/37945762
复制相似问题