map.html という名前のページを取得しました。これは、Google マップ API を使用する単純な html です。
<head>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=XXXXXXX&sensor=true®ion=IL">
</script>
<script src="map.js" type="text/javascript"></script>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
</head>
<body>
</body>
<template name="map">
<div id="map-canvas"></div>
</template>
このページにルーティングするために、iron-router を使用しています。
this.route("map");
pathFor も使用:
<a href="{{pathFor 'map'}}" class="map"><div class="inner">set location</div></a></div>
そして最後に、map.js という名前の別のファイルにある私の Google マップの初期化関数:
$(document).ready(function () {
function initialize() {
var TLV = new google.maps.LatLng(32.06461, 34.777222);
var mapOptions = {
zoom: 12,
center: TLV,
panControl: false,
zoomControl: false,
mapTypeControl: true,
scaleControl: false,
streetViewControl: false,
overviewMapControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
marker = new google.maps.Marker({
position: TLV,
map: map,
title: 'Hello World!',
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function (evt) {
var pos = [marker.getPosition().lat(), marker.getPosition().lng()];
console.log(pos);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
});
http:localhost/map に手動でルーティングする場合はすべて正常に動作しますが、localhost から移動してそのルートのリンクをクリックすると、マップが機能しなくなります。起動時に meteor がすべてのファイルを提供することがわかりました。それを防ぐ?または、特定のファイルを特定のページに提供する方法は?