[英]Carrierwave - development upload issues after adding S3/Fog for production
我得到了我的生產rails 3應用程序設置,以便在Heroku上運行時使用Fog / S3進行存儲。 在此過程中,我對/config/initializers/carrierwave.rb
進行了一些更改。 這是它的樣子:
CarrierWave.configure do |config|
if Rails.env.test? || Rails.env.development?
config.root = Rails.root
config.storage = :file
else
config.storage = :fog
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => ENV['MY_ID'], # required
:aws_secret_access_key => ENV['MY_KEY'] # required
}
config.fog_directory = 'my-app' # required
config.fog_public = false # optional, defaults to true
#config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
end
end
這是我的image_uploader
:
class ImageUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
上傳工作正常。 文件正在開發中上傳到正確的目的地,但在查看上傳的圖像時出現此錯誤:
ActionController::RoutingError (No route matches [GET] "/uploads/vendor/image/24/StoreB.png"):
我不確定如何解決這個問題。 我在上傳器中遺漏了什么嗎? 請幫助? 如果您需要更多信息,請告訴我。 提前致謝!
編輯拋出錯誤的代碼示例:
<% @stores.each do |s| %>
<div class="row">
<div class= "col-xs-9 horz-cent">
<%= link_to image_tag("#{s.vendor.image}"), user_show_store_path(s) %>
</div>
</div>
<% end %>
將config.root
設置如下
config.root = Rails.root.join('public')
目前,文件正在Rails.root
目錄中上傳,這些文件無法從瀏覽器訪問,因為它們不在public
目錄中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.