使用asset_sync gem推送到Heroku应用程序时同步无文件时出错?

时间:2013-04-01 15:32:40

标签: heroku amazon-s3 ruby-on-rails-3.2 less assets

我有一个Rails 3.2.12应用程序,我试图使用Amazon S3存储桶和我的Heroku应用程序的asset_sync gem同步我的资产。 我已经查看了整个github问题跟踪器和SO,但是无法找到答案。所以这是我的问题:

是否可以使用asset_sync gem同步.less文件?

在我推送到Heroku之后,我在日志中输入了这个错误:

Running: rake assets:precompile
   rake aborted!
   variable @inputHeight is undefined
   (in /tmp/build_tejom7tf9zq9/app/assets/stylesheets/utils-and-mixins.less)

为了配置我的应用程序,我跟随asset_sync github page的wiki并设置我使用内置初始化程序的ENV变量。

以下是我的production.rb文件中的修改,以满足asset_sync要求:

  # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
  config.assets.precompile += [ '*.css' ]

  # Serving Assets From S3 on Heroku
  config.action_controller.asset_host = "//s3.amazonaws.com/test"

  # store assets in a 'folder' instead of bucket root
  config.assets.prefix = "/production/assets"

end

任何建议都将受到高度赞赏。谢谢

编辑1:

我甚至尝试在命令行中单独运行:

heroku run rake assets:precompile --app <yourapp>

但它没有帮助,它抛出了同样的错误。

编辑2:

我想这就是你要求的:

....
gem 'less-rails', '~> 2.3.2'

gem 'twitter-bootstrap-rails', '2.2.6'


# Gems used only for assets and not required in production environments by default.
group :assets do
  gem 'sass-rails', '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'therubyracer', '~> 0.11.4', platforms: :ruby
  gem 'asset_sync'
end

1 个答案:

答案 0 :(得分:0)

管理通过在我的production.rb中写入我想要包含在我的S3存储桶中的特定.css文件名来使其工作:

 # Enable serving of images, stylesheets, and JavaScripts from an asset server
  config.action_controller.asset_host = "//s3.amazonaws.com/test"

  # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
  config.assets.precompile += %w( public.css users.css admin.css )