部署时,不会显示{{#with}}内的HTML内容

时间:2017-11-04 21:39:10

标签: meteor meteor-blaze

我有一个在运行localhost时运行良好的流星代码,但是当我在Google Cloud中部署它时,除了我的一个包含表单的页面外,几乎所有内容都可以正常工作,而且我预先填充了来自服务器。

这是我的HTML:

<template name="ConfigForm">
  {{ #with configurationData }}
  <form class="update-config">
    <div class="row">
      <div class="col-lg-6">
        <p>Email Recipients</p>
      </div>
      <div class="col-lg-6">
        <label for="decimal" class="sr-only">Email Recipients</label>
        <input type="text" id="send_to_email" class="form-control" placeholder="Email Recipients" autofocus value="{{ send_to_email }}">
      </div>
    </div>
....

然后,我的这个特定页面的javascript文件有:

Template.ConfigForm.onCreated(function bodyOnCreated() {
  Meteor.call('getConfig',function(err,response) {
    if(err) {
      console.error('Error')
      return;
    }
    Session.set('config', response);
  });
});
Template.ConfigForm.helpers({
   configurationData: function() {
     return Session.get('config')
   }
});

最后,我的服务器定义了Meteor.methods,返回用于填充表单的config JSON对象。正如我所提到的,它在localhost中运行得很好。

当我打开已部署的网页并检查Chrome控制台时,这就是我看到的内容:

Google Chrome Console errors

因此,这可能会导致我的部署配置出现问题,更具体地说是粘性会话。但不是很确定,也不确定我可以在部署脚本中修改哪些内容来修复它。

最后,我用于GCloud部署的Dockerfile是:

FROM gcr.io/google_appengine/nodejs
RUN install_node v4.8.2
COPY . /app/
RUN (cd programs/server && npm install --unsafe-perm)
CMD node main.js

非常感谢任何帮助,谢谢。

修改 按要求添加getConfig方法:

Meteor.methods({
        getConfig: function() {
          return {
            btcmBTCFee:btcm_btc_fee,
            btcmBTCTransferFee:transfer_fee,
            indyBTCFee:indy_btc_fee,
            indyBTCTransferFee:transfer_fee,
            coinjarBTCFee:coinjar_btc_fee,
            coinjarBTCTransferFee:transfer_fee,
            coinspotBTCFee:coinspot_btc_fee,
            coinspotBTCTransferFee:transfer_fee,
            russelBTCFee:coinspot_russel_btc_fee,
            russelBTCTransferFee:transfer_fee,
            acxBTCFee:acx_btc_fee,
            acxBTCTransferFee:transfer_fee,
            btcmLTCFee:btcm_ltc_fee,
            btcmLTCTransferFee:transfer_fee,
            indyLTCFee:indy_ltc_fee,
            indyLTCTransferFee:transfer_fee,
            coinspotLTCFee:coinspot_ltc_fee,
            coinspotLTCTransferFee:transfer_fee,
            russellLTCFee:coinspot_russel_ltc_fee,
            russellLTCTransferFee:transfer_fee,
            minimum_pct_for_alert:minimum_pct_for_alert,
            minimum_variation_pct_to_send_alert:minimum_variation_pct_to_send_alert,
            enable_send_alert:enable_send_alert,
            send_to_email:send_to_email
          };
        }
    });

这是一个非常简单的函数,它只是返回全局变量。我甚至还没有从MongoDB上阅读。

EDIT2:

我实际上忘记了我有app.yml文件,ROOT_URL在那里,并且也正确:

entrypoint: meteor run
env: flex
runtime: custom
env_variables:
  ROOT_URL: https://<<url>>.appspot.com/
  MONGO_URL: "mongodb://<<user>>:<<pw>>@ds157444.mlab.com:57444/arbot"
  DISABLE_WEBSOCKETS: "1"
skip_files:
- ^(.*/)?\.dockerignore$
- ^(.*/)?\npm-debug.log$
- ^(.*/)?\yarn-error.log$
- ^(.*/)?\.git$
- ^(.*/)?\.hg$
- ^(.*/)?\.svn$

SOLUTION:

我得到了它的工作! 我决定将DISABLE_WEBSOCKETS: "1"改为DISABLE_WEBSOCKETS: "0"和tada !! WORKING !! :)

1 个答案:

答案 0 :(得分:1)

<强> SOLUTION:

我得到了它的工作!我决定改变DISABLE_WEBSOCKETS:&#34; 1&#34;到DISABLE_WEBSOCKETS:&#34; 0&#34;和田田!! WORKING !! :)