1

我有一个 Rails 3.2.8 应用程序,它似乎在我的开发环境中运行良好,但是当部署到 Heroku 时,资产管道不再正确编译我的资产——或者至少,没有加载我的依赖项。

例如,在http://myappsubdomain.herokuapp.com/assets/application-b389f6c8ee6250ebc143feb659f40ed9.js上找到的“已编译”js 资产包含原始源代码:

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
$(".tip").tooltip();

我的 CSS 资产也是如此,其中包括直接放置在我的 application.css 中的任何样式,但没有加载任何必需的依赖资产。

预编译似乎在部署期间运行而没有错误:

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       Asset precompilation completed (8.79s)

我注意到,如果我手动运行“heroku run rake asset:precompile”,我运行时不会出错,只有几个折旧通知。

如果我在我的开发环境中启用资产编译,一切似乎都被压缩到单个包含的资产中,正如我所期望的那样。

任何人都可以对此提供任何建议吗?

4

1 回答 1

0

经过更多实验后,我注意到我提供的新 Heroku 实例在 Ruby 2 上运行(显然是在为 Rails 4 做准备),但我的开发环境和运行这个给定代码库的现有 heroku 实例是在 1.9.3 上。

我已经更新了我的 Gemfile 以包含 Ruby 版本的显式定义,现在在部署时看起来工作得非常好。

于 2013-06-19T14:06:30.217 回答