Rails 4-如何在供应商文件中引用javascript源
我刚刚发现我需要修改我的gmapsforrails设置,直接在我的应用程序中插入javascript文件 我已经克隆了infobox和markerclusterer repos,现在我正试图引用我应用程序中的相关文件 我的供应商文件中有克隆附带的文件文件夹 我知道我需要使用的javascript文件是:infobox.js和markerclusterer.js 这些文件位于:Rails 4-如何在供应商文件中引用javascript源,javascript,ruby-on-rails,google-maps,path,gmaps4rails,Javascript,Ruby On Rails,Google Maps,Path,Gmaps4rails,我刚刚发现我需要修改我的gmapsforrails设置,直接在我的应用程序中插入javascript文件 我已经克隆了infobox和markerclusterer repos,现在我正试图引用我应用程序中的相关文件 我的供应商文件中有克隆附带的文件文件夹 我知道我需要使用的javascript文件是:infobox.js和markerclusterer.js 这些文件位于: vendor/js-marker-clusterer/src/makerclusterer.js vendor/v3-
vendor/js-marker-clusterer/src/makerclusterer.js
vendor/v3-utility-library/src/infobox.js
我想用它们来代替此视图中的代码:
<script src="//maps.google.com/maps/api/js?v=3.18&sensor=false&client=&key=&libraries=geometry&language=&hl=®ion="></script>
<script src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js' type='text/javascript'></script> <!-- only if you need custom infoboxes -->
我是否需要引用app/application.js中的javascript文件?如果是这样,我需要在路径中的什么点开始(假设这些文件不在vendor/assets/javascripts文件夹中)
此外,我知道我需要以某种方式合并markerclusterer图像。这些也已通过克隆回购协议,并存储在vendor/js markerclusterer/images文件夹中。如何引用这些文件以便它们在视图中工作?使用cdn或Google Code服务器总是好的,因为文件从服务器加载速度更快。所以是的,这样做不会有任何伤害
<script src="//maps.google.com/maps/api/js?v=3.18&sensor=false&client=&key=&libraries=geometry&language=&hl=®ion="></script>
<script src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js' type='text/javascript'></script> <!-- only if you need custom infoboxes -->
现在,因为这两个文件需要在google maps api文件之后加载,所以应该在调用maps api后添加application.js。这确保了Google Maps API已首先加载,并且Google.Maps对象对您可用
<script src="//maps.google.com/maps/api/js?v=3.18&sensor=false&client=&key=&libraries=geometry&language=&hl=®ion="></script>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
正确%>
此外,您可以将所有图像放在
app/assets/images
中的文件夹中,并像访问任何其他图像一样访问它们。最合理的做法是将文件夹js marker cluster
和v3实用程序库
放在供应商/assets/javascripts
下,这样您就可以在application.js
as中引用所需的文件
//= js-marker-clusterer/src/makerclusterer
//= v3-utility-library/src/infobox
但是,如果由于某种原因无法执行此操作,则可以将自定义路径添加到config.assets.paths
中,以便自动加载程序可以找到它们
// application.rb
config.assets.paths << Rails.root.join("vendor", "js-marker-clusterer")
config.assets.paths << Rails.root.join("vendor", "v3-utility-library")
// application.rb
config.assets.paths << Rails.root.join("vendor", "js-marker-clusterer")
config.assets.paths << Rails.root.join("vendor", "v3-utility-library")
//= src/makerclusterer
//= src/infobox