Rails 5应用程序将不会从Assets / javascripts文件夹加载JS

时间:2019-05-05 10:18:33

标签: ruby-on-rails ruby ruby-on-rails-5

据我了解,如果application.js文件中存在/= require_tree,则资产/ javascripts文件夹中的所有js文件都会被加载。但是,我无法使我的JS代码正常工作。我已将其放在assets/javascripts/locations.js中,但是它不起作用。另一方面,当我将其放入script文件中的application.html.erb标记中时,它可以很好地工作。有什么想法我可能会错过吗?运行Rails 5.2。 JS代码如下。

locations.js

var locations = ["coordinatesStore"]
  .map(id => document.getElementById(id));

Array.prototype.forEach.call(
  document.querySelectorAll('.add-button'),
  (button, i) => {
    button.addEventListener('click', () => getLocation(i));
  }
);

function getLocation(i) {
  var location = locations[i];
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(({ coords: { latitude, longitude }}) => {
      location.value = latitude + ", " + longitude;
    });
  } else { 
    location.value = "Geolocation is not supported by this browser.";
  }
}

我的application.html.erb中有这个标签

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

1 个答案:

答案 0 :(得分:1)

在哪里 <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 在您的application.html.erb中?

尝试将其放在您的身体标签的末尾,至少在<%= yield %>

之后