我用我的html.erb下面的標籤都顯示發送jpg文件,並下載一個JPG文件,是不是在公共/ images文件夾:請幫我用SEND_DATA
<%= image_tag retrieve_photo_path(@photo) %>
<%= link_to "Download Photo", download_photo_path(@photo) %>
我控制器代碼如下所示:
def retrieve
@photo = Photo.find(params[:id])
send_data File.read(@photo.abs_filepath), :type = "image/jpeg", :disposition => "inline"
end
def download
@photo = Photo.find(params[:id])
send_file @photo.abs_filepath, :type = "image/jpeg", :filename => @photo.filename
end
下載鏈接完美地工作,但圖像標記顯示紅色的x(破碎的圖像)。我錯過了什麼?我在WinXP上使用InstantRails,已更新至Rails 2.3.4和Ruby 1.8.6。
檢查服務器日誌或輸出的請求「retreive」行動。您可能會在那裏找到一些錯誤消息,可能會幫助您找出答案。 – nicholaides 2009-11-08 23:54:10
如果我直接在我的瀏覽器(IE)中輸入網址「www.mytestapp.com/photos/3/retrieve」以模擬img請求,我就會得到紅色的x碎片圖像 - 而我的apache access.log有以下條目: 「GET/photos/3/retrieve HTTP/1.1」304 0 任何人都可以幫忙瞭解狀態碼304的含義嗎? – user206481 2009-11-09 01:03:46
看起來它與Apache緩存有關,但我對此一點也不熟悉 - 請幫助! – user206481 2009-11-09 01:18:14