مشكلة عرض الصور في Paperclip - خطأ في الطرق
-
25-09-2019 - |
سؤال
لقد قمت بإعداد Paperclip و ImageMagick بنجاح على نظامي ، ويتم تحميل الملفات بشكل صحيح ، ويجري تغيير حجمها ، ويتم حفظها في المجلدات الصحيحة.
أحاول عرض تلك الصور في رأيي:
<%= image_tag @customer.logo.url(:medium) %>
لا يتم عرض أي صورة. عندما أذهب إلى عنوان URL المباشر للصورة أحصل عليه:
Routing Error
No route matches "/images/assets/logos/1/medium/corplogo.jpg" with {:method=>:get}
هذا خادم محلي لا يزال قيد التطوير ويعمل على Windows. أشكالاتي متعددة:
<% form_for @customer, :url => {:action => "update", :id => @customer}, :html => {:multipart => true, :id => "myform"} do |f| %>
------ خادم DEV ------
معالجة ApplicationController#INDEX (لـ 127.0.0.1 في 2010-09-27 04:38:33) [g et] المعلمات: {"1285570273" => nil}
ActionController :: Routingerror (لا يوجد مسار يطابق "/heassets/assets/logos/1/medium/corplogo.jpg" مع {: method =>: get}): Haml (3.0.15) Rails/./ lib/sass/plugin /rack.rb:41: `call '
تقديم/تخطيط تقديم (not_found)
------ نموذج ------
has_attached_file :logo,
:url => "assets/logos/:id/:style/:basename.:extension",
:path => ":rails_root/public/assets/logos/:id/:style/:basename.:extension",
:styles => {:medium => "300x300>", :thumb => "100x100>" }
المحلول
لقد وجدت الإجابة على المشكلة ، وهي تكمن في إعلان عنوان URL في النموذج.
بدلاً من:
:url => "assets/logos/:id/:style/:basename.:extension"
يجب أن يكون:
:url => "/assets/logos/:id/:style/:basename.:extension"
نصائح أخرى
حصلت على هذا الخطأ باستخدام خادم "Webrick". وأنا أتحقق من جميع إذن وصول الملفات في مجلد "العام/النظام" الخاص بي ، فهي طبيعية.
أخيرًا ، انتقلت إلى Apache/Passenger ، فهو يعمل ، يتم عرض الصور بشكل صحيح.