0

我有一个简单的电梯“应用程序”,它试图静态显示 OpenLayers 地图,以期待彗星根据一些服务器端逻辑动态地向地图添加标记。无论如何,仅仅显示地图被证明是一项艰巨的任务。

HTML如下:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
<link rel="stylesheet" href="css/main.css">

<script src="js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script>
  function init() {
    map = new OpenLayers.Map("mainMap");
    var mapnik         = new OpenLayers.Layer.OSM();
    var fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
    var toProjection   = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
    var position       = new OpenLayers.LonLat(-76.6778,39.2652).transform( fromProjection, toProjection);
    var zoom           = 9; 

    map.addLayer(mapnik);
    map.setCenter(position, zoom );
  }
</script>
</head>


<body class="lift:content_id=main" onload="init();">
<div id="main" class="lift:surround?with=bootstrap;at=content">
      <div id="mainMap"> </div>
    </div>
</body>
</html>

我显然很难理解在 lift:surround 产生的头和身体元素是从哪里来的。尽管静态 HTML 看起来不错,但相关的脚本元素已经消失,似乎无法调用 init() 来显示地图。

我是否必须以某种方式覆盖环绕片段,完全避免使用它,或者在片段中构造所有 init() javascript,然后以某种方式调用它?或者是其他东西?我是一个电梯新手,所以如果我离基地很远,请多多包涵;)

我尝试的另一件事是在我用来围绕已发布页面的 bootstrap.html 文件中添加相关的头/脚本 HTML 代码,但这也无法让我到达我想要的位置。

编辑:有一个(通常的)缓存问题阻止我看到指定给 lift:suround snippit 的 bootstrap.html 文件的更改。这确实奏效了。

4

1 回答 1

0

您是否阅读了超过 5 页关于 Lift 的内容?...当您输入 content_id=main 时,您告诉 Lift 忽略除<div id="main">. 因此,要使所有这些工作,请将<head_merge>脚本放在<div id="main">.

http://simply.liftweb.net/index-2.1.html

http://demo.liftweb.net/template/head

于 2013-08-24T12:43:22.790 回答