【发布时间】:2014-10-02 22:46:48
【问题描述】:
我的 google-map 仅在页面重新加载或 HTTP 重定向后异步加载。对于第一次加载,它不会出现——没有调用任何 javascript。
在 Rails 开发模式下,它可以正常工作。同样,如果我在本地提供资产,则地图会在生产模式下异步加载。 但是当我配置 Amazon Web Services 的 Cloudfront CDN 时,它在第一个页面加载时失败。
这是调用地图的视图中的 javascript:
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
streetViewControl: false,
overviewMapControl: false,
mapTypeControl: false,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.DEFAULT,
},
center: new google.maps.LatLng(39.82, -98.58),
});
// Info Window Content
var infoWindowContent = <%= raw @content %>;
var locations = <%= raw @location %>;
// Display multiple markers on a map
var infowindow = new google.maps.InfoWindow(), marker, i;
var marker, i;
var markers = new Array();
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(infoWindowContent[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&' +
'callback=initialize';
document.body.appendChild(script);
}
window.onload =loadScript;
</script>
知道 AWS Cloudfront 上的代码可能出了什么问题吗?
【问题讨论】:
标签: ruby-on-rails ajax google-maps amazon-web-services amazon-cloudfront