我調試了一個關於我的資產的問題,並且想要將Heroku上的公共/資產庫的內容下載到我的開發機器上的文件夾中。什麼是最好的方法來做到這一點?如何將文件從生產中下載到開發機器
我可以做
heroku run bash
它開始我的本地開發機器上的Heroku的bash shell。使用這個,我可以列出應用程序的heroku實例上的文件。但是,如何將這些文件複製到本地開發機器的文件系統?
我調試了一個關於我的資產的問題,並且想要將Heroku上的公共/資產庫的內容下載到我的開發機器上的文件夾中。什麼是最好的方法來做到這一點?如何將文件從生產中下載到開發機器
我可以做
heroku run bash
它開始我的本地開發機器上的Heroku的bash shell。使用這個,我可以列出應用程序的heroku實例上的文件。但是,如何將這些文件複製到本地開發機器的文件系統?
像標誌的資產應該是你的混帳回購協議的一部分。如果你沒有,你想下載從Heroku的回購,你可以做
heroku git:clone -a myapp
,你也可以從Heroku的拉回購像
git pull heroku master
,您可以alose從Heroku的底墊狀
git pull --rebase heroku master
我希望這有助於:)
如果用戶上傳,heroku並不擅長持有資產。
我會建議上傳他們使用carrierwave然後你可以指出你的終點是相同的產品。
我的設置是:
我的Gemfile
#Gemfile
gem 'fog', "~> 1.3.1"
gem 'carrierwave'
初始化
#config/initializers/carrierwave.rb
CarrierWave.configure do |config|
config.storage = :fog
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['CARRIER_WAVE_ACCESS_KEY'],
:aws_secret_access_key => ENV['CARRIER_WAVE_SECRET_ACCESS_KEY']
}
config.cache_dir = "#{Rails.root}/tmp/uploads"
config.fog_directory = ENV['CARRIER_WAVE_BUCKET']
config.fog_attributes = { 'Cache-Control'=>'max-age=315576000' }
end
上傳
# encoding: utf-8
class FileUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
# include CarrierWave::MiniMagick
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
我知道,這是不完全的問題,但我希望它可以幫助
:)
對不起,這沒有幫助。 Heroku當然確實存儲了Ruby on Rails應用程序使用的圖像資產等,例如徽標。這是我想要下載的那種資產。 – Obromios
我接受並贊成這個,因爲它回答了我的問題。但是,它並沒有解決我的問題。我想從特定版本下載資產。如果我回滾到該版本並執行'''git pull heroku master'''它說它是最新的。據我所見,heroku上的git存儲庫是本地機器上的git存儲庫的副本,因此不包括通過在heroku上預編譯添加的資產。任何想法如何得到這些? – Obromios
那些資產可以在.gitignore? – MZaragoza
不,他們不在.giitignore。問題是如果預編譯發生在heroku上,那麼它們不會被提交。 – Obromios