assets/books_icon
ユーザーが本を作成するときに、本のIDと同じ名前の画像をアップロードするレールアプリケーションがあります。
upload_icon(params[:book][:image_upload])
# upload_image when create/update book
def upload_icon(uploaded_io)
photo_directory = "app/assets/images/"
# only when user upload the iphoto
if uploaded_io.present?
# upload to the exact location with category_id
extension = File.extname(uploaded_io.original_filename)
photo_location = 'books_image/'+ @book.id.to_s + extension
# open in binary mode
photo_full_location = photo_directory + photo_location
File.open(photo_full_location, 'wb') do |file|
file.write(uploaded_io.read)
end
# only have to state which is the directory,
# image_tag will use assets piepline which will add 'assets/images/' as prefix in src
@book.update_attribute(:image_url, photo_location)
end
end
それは開発モードで動作します。次に、mysqlをデータベースとしてmac Apache2サーバーにパッセンジャーを使用してrailsアプリケーションをデプロイconfig.assets.compile = true
し、開発構成ファイルを変更しました。
プロダクション モードでは、新しい本を作成し、画像を にアップロードできますassets/books_icon
。ただし、アップロードしたばかりの画像のファイル パスはupdate
.
たとえば、ID 2 の新しい本を作成すると、.jpg に 2.jpg がありassets/books_icon
ます。http://localhost/assets/images/books_icon/2.jpg
しかし、Rails アプリケーションは、見つからないことを教えてくれます。
ただし、Apache サーバーを再起動すると、次の場所で画像を表示できます。http://localhost/assets/images/books_icon/2.jpg
この種のcaching
問題を解決する解決策はありますか??