ImageResizerであるRubyアプリがあります。これを行うためにRMagickgemを使用します。アプリはユーザーにファイルをアップロードするように求め、ファイルのサイズを変更して、新しく生成されたファイルを保存します。
Sinatraはデフォルトで、アップロードされたすべてのファイルを「uploads」ディレクトリに配置し、新しく生成されたファイルもそこに保存されているようです。これはデフォルトの動作であると想定しており、これを変更する方法はわかりませんが、現時点ではすぐに問題になるわけではありません(ただし、これを行う方法を知っていれば、それもありがたいです)。
さて、ファイルが正しく生成された後に表示される「success.haml」ページで、新しく生成された画像を単純なimgタグで表示しようとしています。ファイルへのパスは@filepathにあるので、私が行ったとき:
%img(src=@filepath)
レンダリングされたHTML(Firebugを使用して検査した場合)は正しく表示されます
<img src="uploads/filename.jpg">
そして、このファイルは確かに私のフォルダ構造に存在します。ただし、画像が壊れているように見えます。
この問題を克服する方法について何かアイデアはありますか?
ありがとうございました。