Javascript Meteor:动态页面未正确转换

Javascript Meteor:动态页面未正确转换,javascript,meteor,meteor-blaze,flow-router,Javascript,Meteor,Meteor Blaze,Flow Router,好吧,这真是个奇怪的问题。不幸的是,我不能展示很多代码,因为我真的不知道问题是从哪里产生的——但是,我可以描述问题。也就是说,如果你认为有一些代码是相关的,请询问,我会发布它!下面是: 我有一个HTML模板(发现),我正在切割成Blaze模板,以便集成到我正在使用Meteor开发的房地产网站中。该模板包含所有这些外部CSS和JavaScript文件,我只需将模板保持原样,并将模板所需的所有资产放入Meteor项目的/public文件夹即可。通过嵌入在主布局底部附近的中的常规和元素加载文件 下面是

好吧,这真是个奇怪的问题。不幸的是,我不能展示很多代码,因为我真的不知道问题是从哪里产生的——但是,我可以描述问题。也就是说,如果你认为有一些代码是相关的,请询问,我会发布它!下面是:

我有一个HTML模板(发现),我正在切割成Blaze模板,以便集成到我正在使用Meteor开发的房地产网站中。该模板包含所有这些外部CSS和JavaScript文件,我只需将模板保持原样,并将模板所需的所有资产放入Meteor项目的
/public
文件夹即可。通过嵌入在主布局底部附近的
中的常规
元素加载文件

下面是我的
的样子:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Real Places</title>
    <link rel="icon" href="images/cropped-ms-icon-310x310-32x32.png" sizes="32x32" />
    <link rel="icon" href="images/cropped-ms-icon-310x310-192x192.png" sizes="192x192" />
    <link rel="apple-touch-icon-precomposed" href="images/cropped-ms-icon-310x310-180x180.png">
    <!-- Google font-->
    <link href='http://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic,900' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Dosis:400,700,600,500' rel='stylesheet' type='text/css'>
    <!-- Include the flexslider stylesheet -->
    <link href="js/flexslider/flexslider.css" rel="stylesheet">
    <!-- Include the lightslider stylesheet -->
    <link href="js/lightslider/css/lightslider.min.css" rel="stylesheet">
    <!-- Include the owl-carousel stylesheet -->
    <link href="js/owl.carousel/owl.carousel.css" rel="stylesheet">
    <!-- Include the swipebox stylesheet -->
    <link href="js/swipebox/css/swipebox.min.css" rel="stylesheet">
    <!-- Include the select2 stylesheet -->
    <link href="js/select2/select2.css" rel="stylesheet">
    <!-- Include the font-awesome stylesheet -->
    <link href="css/font-awesome.min.css" rel="stylesheet">
    <!-- Include the select2 stylesheet -->
    <link href="css/animate.css" rel="stylesheet">
    <link href="js/magnific-popup/magnific-popup.css" rel="stylesheet">
    <!-- Main stylesheet -->
    <link rel="stylesheet" href="css/main.css"/>
    <!-- Default Theme stylesheet -->
    <link rel="stylesheet" href="css/theme.css"/>
</head>
<template name="app_home"> <!-- note this is distinct from site_home, which is a different template -->
  <body class="inspiry-slider-two">
    {{> page_loader}}
    {{> mobile_header}}
    {{> site_header}}
    {{> Template.dynamic template=main}}
    {{> site_footer}}
    {{> login_modal}}
    {{> real_places_includes}}
  </body>
</template>
<template name="real_places_includes">
  <script src="js/jquery-1.12.3.min.js"></script>
  <script src="js/flexslider/jquery.flexslider-min.js"></script>
  <script src="js/lightslider/js/lightslider.min.js"></script>
  <script src="js/select2/select2.min.js"></script>
  <script src="js/owl.carousel/owl.carousel.min.js"></script>
  <script src="js/swipebox/js/jquery.swipebox.min.js"></script>
  <script src="js/jquery.hoverIntent.js"></script>
  <script src="js/jquery.validate.min.js"></script>
  <script src="js/jquery.form.js"></script>
  <script src="js/transition.js"></script>
  <script src="js/jquery.appear.js"></script>
  <script src="js/modal.js"></script>
  <script src="js/meanmenu/jquery.meanmenu.min.js"></script>
  <script src="js/jquery.placeholder.min.js"></script>
  <script src="js/custom.js"></script>
  <!-- .modal -->
  <script>
     ...
     // This is a bunch of modal code specific to the template
     ...
  </script>
</template>
当页面第一次加载时,这非常有效,但是当我离开主页并返回时,返回时资产似乎没有正确加载。以下是一些相关的路由代码:

FlowRouter.route('/', {
  name: 'Site.home',
  action() {
    BlazeLayout.render('app_home', { main: 'site_home' });
  }
});

FlowRouter.notFound = {
  action() {
    BlazeLayout.render('app_home', { main: 'site_not_found' });
  }
};
现在,模板中几乎所有的链接都不起作用,因为我没有将它们换成'live'
{{pathFor'route'}}
调用。所以,如果我说,点击其中一个链接,我会得到404页面,这是我应该看到的。它似乎负载刚刚好。在404页面上,我添加了一个
{{pathFor'Site.home}}
来将用户导航回主页。但是,当您单击它时,主页上所有依赖JavaScript的页面元素(以前加载的页面元素都很好!)的格式似乎都不正确。我检查了Chrome调试器来找出这个问题。然而,根据Chrome的资源检查器,所有资产仍然正确加载

以下是页面最初和路由回主页后的外观:
路由前

路由后

如您所见,选择框未正确渲染,导航栏下方页面顶部的滑块也未渲染,并显示动画加载图形。。。基本上,任何依赖JavaScript的东西都是kaput

下面是我的调试器的几个屏幕截图,突出显示了这个问题:
路由前

路由后

这就是使用“我的路线”前后相同的“位置”选择的外观

因此,无论出于何种原因,当我点击某个路由时,路由所依赖的代码似乎并没有按照它应该的方式执行,以便按照最初的方式格式化页面。但是,如果在站点首次加载时点击了路由,它会执行得很好。。。我觉得我需要手动触发一些全球事件或类似的事件,但我真的不知道是什么。。。或者完全是别的什么。我尝试在
模板.site\u home.onRendered
回调上手动触发
'load'
'ready'
事件,但没有成功

有人知道我如何解决这个问题并正确地进行页面转换吗