Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails 4-如何在供应商文件中引用javascript源_Javascript_Ruby On Rails_Google Maps_Path_Gmaps4rails - Fatal编程技术网

Rails 4-如何在供应商文件中引用javascript源

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-

我刚刚发现我需要修改我的gmapsforrails设置,直接在我的应用程序中插入javascript文件

我已经克隆了infobox和markerclusterer repos,现在我正试图引用我应用程序中的相关文件

我的供应商文件中有克隆附带的文件文件夹

我知道我需要使用的javascript文件是:infobox.js和markerclusterer.js

这些文件位于:

 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=&region="></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=&region="></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=&region="></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