【发布时间】:2012-10-29 02:29:33
【问题描述】:
我有一个 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 可能无法处理该参数。不过,它在开发环境中本地工作,无需预编译。关于为什么在这种情况下预编译会失败的任何想法?
【问题讨论】:
-
不熟悉 Heroku,但 javascript_include_tab 文档页面上的这条评论可能会有所帮助:apidock.com/rails/ActionView/Helpers/AssetTagHelper/…
-
谢谢;在这种情况下,问题不在视图中,而是在资产预编译过程中,它似乎不支持除了静态文件名之外的任何东西来选择要预编译的 JS 资产。
标签: ruby-on-rails heroku ruby-on-rails-3.1 mapstraction