我正在使用RoR和jquery.ui.addresspicker.js
此jquery.ui.addresspicker.js要求在加载该库之前加载谷歌。我只需要在应用程序的几个页面上使用addresspicker。
以前需要加载的Google部分是:
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
但是这会使页面加载速度变慢,所以我不想在我的所有页面上加载它。
application.js包含:
//= require jquery
//= require jquery_ujs
//= require jquery.ui.all
//= require jquery.blockUI
//= require select2
//= require cocoon
//= require_tree .
目前,jquery.ui.addresspicker.js文件位于app / assets / javascripts中,因此也会自动加载。
我该如何处理?我应该将addresspicker.js移出javascripts目录吗?我应该重写我的application.js吗?其他建议?
答案 0 :(得分:1)
您可以替换
//= require_tree .
显示您希望在每个页面上包含的javascripts的明确列表。并在您需要的页面上加入jquery.ui.addresspicker
。
答案 1 :(得分:1)
我用Ian的想法来改变application.js
我创建了一个名为sitewide的新文件夹,并复制了我想在整个网站上使用的所有javascripts(所以不是addresspicker)。
我改变了这样的application.js:
//= require_tree ./sitewide
在我需要addresspicker的页面中,我使用javascript_include_tag
这样我每次想要添加js文件时都不需要更改application.js文件。
答案 2 :(得分:0)
在两个页面上使用不同的布局,或者只是从default_layout中删除jquery.ui.addresspicker.js,并将其包含在您需要的页面中
<%= include_javascripts "jquery.ui.addresspicker" %> or
javascript_include_tag "jquery.ui.addresspicker"
在您需要的页面