0

关于一个使用 chicagoboss 和 otp19 运行的网站,我有三个文件:index.html、config.js 和 zeus_config_controller.erl,这三个文件之前工作得很好,但是在我将这些文件复制到新服务器并运行之后在这个新服务器上的网站,然后出现问题。

似乎chicagoboss无法再将js文件的请求连接到erl文件,日志显示:

14:12:25.360 [info] GET /config/function1/paramX [zeus] 200 98ms
14:12:25.404 [info] GET /config/function2/paramY [zeus] 200 108ms

现在这两行日志之间没有以前的 erl 日志了。谁能建议我是否需要在某处进行任何配置?我还没有做任何与这个chicagoboss相关的配置。

太感谢了。

4

1 回答 1

0

看看你是否能让下面的例子工作:

宙斯/src/controller/zeus_config_controller.erl:

-module(zeus_config_controller, [Req]).
-compile(export_all).

index('GET', []) ->
    {ok, []}.

get_data('GET', []) ->
    {json, [{a, 1}, {b, 2}] }.

宙斯/src/view/config/index.html:

<html>
  <head>
    <title>{% block title %}Config{% endblock %}</title>

    <!-- jquery cdn:  --!>
    <script src="http://code.jquery.com/jquery-3.3.1.js"   
      integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="   
      crossorigin="anonymous"></script>

    <!-- zeus js:  --!>
    <script src="/static/js/myjs.js"></script>

  </head>

  <body>
  {% block body %}
    <div id="results">results</div>
    <div><button id="button1" type="button">Click me</button></div>
  {% endblock %}
  </body>
</html>

宙斯/priv/static/js/myjs.js:

function on_button_click() {
  $.get("/config/get_data", function(data) {
    $("#results").text(data.a + data.b);
  });
}

$(document).ready( function() {
  $("#button1").click(on_button_click);
});

在浏览器中输入以下网址:

http://localhost:8001/config/index

然后单击按钮。你看到了什么?您的浏览器的 js 控制台中是否有任何错误?

14:12:25.360 [info] GET /config/function1/paramX [zeus] 200 98ms
14:12:25.404 [info] GET /config/function2/paramY [zeus] 200 108ms

现在这两行日志之间没有以前的 erl 日志了。

当我输入http://localhost:8001/config/index上面的示例时,我看到以下输出:

...
...
07:05:42.421 [info] GET /config/get_data [zeus] 200 40ms
07:05:42.435 [info] GET /config/index [zeus] 200 55ms

这对我来说没有多大意义,因为我的代码中没有任何内容明确向/config/get_data. 然后当我点击页面上的按钮时,我看到:

... 
...
07:06:11.231 [info] GET /config/get_data [zeus] 200 26ms

...正如预期的那样。

于 2018-02-24T12:52:23.457 回答