【问题标题】:It's possible to put Google Map's Javascripts in the Asset pipeline (Rails)?可以将 Google Maps Javascripts 放入资产管道(Rails)吗?
【发布时间】:2013-01-13 22:36:58
【问题描述】:

我添加了将谷歌地图加载到我的页面所需的 javascript:

<% content_for :head do %>

<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false">
</script>
<script type="text/javascript">
function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(<%=@lat%>, <%=@lon%>),
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
}
</script>

<% end %>

如您所见,我在加载地图时需要传递纬度和经度参数。 正如我在标题中所说,我想将这些 javascript 放入资产管道中,如果可以的话,有可能吗?谢谢

【问题讨论】:

    标签: javascript ruby-on-rails asset-pipeline


    【解决方案1】:

    您不应在资产管道生成的 application.js 文件中包含 Google Maps API。相反,它应该作为一个单独的&lt;script&gt; 标记您的application.js&lt;script&gt; 标记之前。

    然后,您可以将 initialize() 方法添加到资产管道中包含的任何文件中,包括 application.js 本身。

    您可能希望为您的initialize 方法创建@lat@lon 参数,以便可以在您的页面&lt;head&gt; 中定义它们。例如,您可能有

    <head>
      <script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false"></script>
      <%= javascript_include_tag "application" %>
    
      <script>
        var latitude  = <%= @lat %>;
        var longitude = <%= @lon %>;
      </script>
    </head>
    

    在你的application.js 文件中你可能有

    function initialize(latitude, longitude) {
      var mapOptions = {
          center: new google.maps.LatLng(latitude, longitude),
          zoom: 5,
          mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      var map = new google.maps.Map(document.getElementById("map_canvas"),
          mapOptions);
    }
    
    $(function() {
      initialize(latitude, longitude);
    });
    

    【讨论】:

    • 谢谢,我会说这个实现允许我使用带有 turbolinks 的谷歌地图 :)
    【解决方案2】:

    这并不能回答你的问题,但是有一个对我来说非常有用的谷歌地图 gem:https://github.com/apneadiving/Google-Maps-for-Rails

    【讨论】:

    • 这应该作为对问题的评论发布 - 正如你自己所说,这不是答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多