0

我有一个 Rails 3.1 应用程序,其资产设置为在生产中预编译(在本例中为 Heroku)。这包括 jQuery、jQueryUI 和 Mapstraction。然而,运行heroku logs显示 Mapstraction,一个映射 JS 库,可能没有成功预编译:

2012-10-25T05:13:11+00:00 app[web.1]: ActionView::Template::Error (mxn.js?(googlev3) isn't precompiled):
2012-10-25T05:13:11+00:00 app[web.1]:     8:   <%= javascript_include_tag :application %>
2012-10-25T05:13:11+00:00 app[web.1]:     9:   <%= csrf_meta_tag %>
2012-10-25T05:13:11+00:00 app[web.1]:     11:   <%= javascript_include_tag "mxn.js?(googlev3)" %>
2012-10-25T05:13:11+00:00 app[web.1]:     12:   <script type="text/javascript">
2012-10-25T05:13:11+00:00 app[web.1]:     10:   <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>

我怀疑由于 Mapstraction (mxn.js) 是使用地理数据服务提供者名称作为 Rails 可能无法处理的参数构建的。不过,它在开发环境中本地工作,无需预编译。关于为什么在这种情况下预编译会失败的任何想法?

4

1 回答 1

0

您可以手动包含必要的文件以使 Mapstraction 与 Rails 资产管道一起工作:

curl https://raw.github.com/mapstraction/mxn/master/source/mxn.js > vendor/assets/javascripts/mxn.js
curl https://raw.github.com/mapstraction/mxn/master/source/mxn.core.js > vendor/assets/javascripts/mxn.core.js
curl https://raw.github.com/mapstraction/mxn/master/source/mxn.openlayers.core.js > vendor/assets/javascripts/mxn.openlayers.core.js

然后你把

//= require mxn
//= require mxn.core
//= require mxn.openlayers.core
于 2012-12-29T21:42:13.817 回答