我有一个Rails 3.1应用程序,其资产设置为在生产环境中预编译(在本例中为Heroku)。这包括jQuery、jQueryUI和Mapstraction。但是,运行heroku logs会发现映射JS库Mapstraction可能无法成功预编译:
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可能无法处理这种情况。不过,它可以在本地开发环境中工作,不需要预编译。你知道为什么在这种情况下预编译会失败吗?
发布于 2012-12-30 05:42:14
您可以手动包含必要的文件,以使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.corehttps://stackoverflow.com/questions/13115190
复制相似问题