Rails link_to不加载传单映射

问题描述 投票:0回答:2

我遇到了一个非常奇怪的问题(至少对我而言)。当我手动输入网址时,地图加载就好了,但是,当我使用链接(rails或href)时,地图将不会加载,直到我点击刷新。

有任何想法吗?

routes.rb

Rails.application.routes.draw do
    root 'page#map'
end

application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>LeafletTest</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

map.html.erb

<%= link_to("reload page (rails)", root_path) %><br />
<a href="\">reload page (a href)</a><br />

<div id="mapid"></>

page.scss

#mapid {
  width: 100%;
  height: 600px;
}

page.coffee

$ ->
  map = L.map('mapid').setView([
    51.505
    -0.09
  ], 13)
  L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors').addTo map
ruby-on-rails-4 coffeescript leaflet
2个回答
1
投票

我能够通过确保每次渲染地图时创建一个新的TileLayer来解决这个问题,即当turbolinks:load被触发时。


0
投票

在其他一些帖子的帮助下,我终于发现这是由于Turbolinks以及它调用页面加载的方式。将data: { turbolinks: false}属性添加到我的rails链接有助于清除它。我想它可以工作(使用正确的格式)非rails链接。

© www.soinside.com 2019 - 2024. All rights reserved.