1

我正在使用 RoR 和 jquery.ui.addresspicker.js

此 jquery.ui.addresspicker.js 要求在加载该库之前加载 google。我只需要应用程序中几个页面上的地址选择器。

之前需要加载的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 吗?其他建议?

4

3 回答 3

1

我使用了 Ian 的想法来更改 application.js

我创建了一个名为 sitewide 的新文件夹,并在其中复制了我想在整个站点上使用的所有 javascript(所以不是地址选择器)。

我像这样更改了 application.js:

//= require_tree ./sitewide

在我需要地址选择器的页面中,我使用 javascript_include_tag

这样我就不需要每次想要添加 js 文件时都更改 application.js 文件。

于 2013-04-28T16:19:33.247 回答
1

你可以更换

//= require_tree .

带有要包含在每个页面上的 javascript 的明确列表。并且只包括jquery.ui.addresspicker在您需要的页面上。

于 2013-04-28T15:58:41.270 回答
0

在两个页面上使用不同的布局,或者只是从 default_layout 中删除 jquery.ui.addresspicker.js 并只包含在您需要它的页面中

<%= include_javascripts "jquery.ui.addresspicker" %> or
javascript_include_tag "jquery.ui.addresspicker"

在您需要的页面中

于 2013-04-28T15:47:31.063 回答