سؤال

لقد قمت بإعداد 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 ، فهو يعمل ، يتم عرض الصور بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top