0

herokuのデータベースにインポートするcsvファイルがあり、csvには画像名が含まれており、画像をフォルダーに配置し、インポートコードでそのパスを指定する必要があります。そのため、パブリックフォルダーとアセットフォルダーに画像を保持しようとしましたが、次のようなエラーが返されました

Errno::ENOENT (No such file or directory - /images/picture17.jpg):

次のように production.rb で true を設定しました

 config.serve_static_assets = true

それでもエラーが発生します。私を助けてください。

編集:

csv_text = File.read('sample.csv')
        csv = CSV.parse(csv_text, :headers => true)
        csv.each do |row|
            Model.create!({"name"=>row['name'], "age"=>row['age'], "pic"=>File.open("/images" + row['pic_name'])})
        end
4

1 に答える 1

0

無料プランの場合、Heroku は一定の間隔で public/assets ディレクトリを削除します

(1 日 1 回だと思います。) そのため、Rails 3.1 以降に統合されたアセット パイプラインを介してアセットを提供する必要があります。

あなたはCSVファイルをインポートしていると言いましたが、実際にはこのアプリケーション用にセットアップされたデータベースがあると思います.

CarrierWave と Cloudinary を組み合わせたスイート ライフを紹介します。

時間をかけて CarrierWave のドキュメントを読んでください: https://github.com/jnicklas/carrierwave

Cloudinary のドキュメント: http://cloudinary.com/documentation

ここに良い部分があります: Heroku は実際に cloudinary と非常にうまく統合されています https://addons.heroku.com/cloudinary

Cloudinary::CarrierWave ヘッダーをアップローダーに含めるだけで、うまくいくはずです!

于 2013-02-20T11:34:40.130 に答える