我有一个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
答案 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 )