Hi folks, i''m new to ROR. My Application works fine on my local machine, but if i deploy my application the pictures and files are not shown correctly. Instead of taking the right uri "http://adress/employee_public/pictures/0000/0010/not.gif" it takes the uri "http://adress/pictures/0000/0010/not.gif" like on my local machine, where the paths looks like this: http://localhost:3000/pictures/0000/0010/not.gif I use attachment_fu for handling uploads. Everything in the application works fine, except the images and files. Where is the problem. My server runs Apache/2.2.3 (Debian) mod_jk/1.2.26 Phusion_Passenger/2.0.3 PHP/4.4.4-8+etch6 mod_ssl/2.2.3 OpenSSL/0.9.8c My file_system_backend.rb: 1. require ''ftools'' 2. module Technoweenie # :nodoc: 3. module AttachmentFu # :nodoc: 4. module Backends 5. # Methods for file system backed attachments 6. module FileSystemBackend 7. def self.included(base) #:nodoc: 8. base.before_update :rename_file 9. end 10. 11. # Gets the full path to the filename in this format: 12. # 13. # # This assumes a model name like MyModel 14. # # public/#{table_name} is the default filesystem path 15. # RAILS_ROOT/public/my_models/5/blah.jpg 16. # 17. # Overwrite this method in your model to customize the filename. 18. # The optional thumbnail argument will output the thumbnail''s filename. 19. def full_filename(thumbnail = nil) 20. file_system_path = (thumbnail ? thumbnail_class : self).attachment_options[:path_prefix].to_s 21. File.join(RAILS_ROOT, file_system_path, *partitioned_path(thumbnail_name_for(thumbnail))) 22. end 23. 24. # Used as the base path that #public_filename strips off full_filename to create the public path 25. def base_path 26. @base_path ||= File.join(RAILS_ROOT, ''public'') 27. end 28. 29. # The attachment ID used in the full path of a file 30. def attachment_path_id 31. ((respond_to?(:parent_id) && parent_id) || id).to_i 32. end 33. 34. # overrwrite this to do your own app-specific partitioning. 35. # you can thank Jamis Buck for this: http://www.37signals.com/svn/archives2/id_partitioning.php 36. def partitioned_path(*args) 37. ("%08d" % attachment_path_id).scan(/..../) + args 38. end 39. 40. # Gets the public path to the file 41. # The optional thumbnail argument will output the thumbnail''s filename. 42. def public_filename(thumbnail = nil) 43. full_filename(thumbnail).gsub %r(^#{Regexp.escape(base_path)}), '''' 44. end 45. 46. def filename=(value) 47. @old_filename = full_filename unless filename.nil? || @old_filename 48. write_attribute :filename, sanitize_filename(value) 49. end 50. 51. # Creates a temp file from the currently saved file. 52. def create_temp_file 53. copy_to_temp_file full_filename 54. end 55. 56. protected 57. # Destroys the file. Called in the after_destroy callback 58. def destroy_file 59. FileUtils.rm full_filename 60. # remove directory also if it is now empty 61. Dir.rmdir(File.dirname(full_filename)) if (Dir.entries(File.dirname(full_filename))-[''.'',''..'']).empty? 62. rescue 63. logger.info "Exception destroying #{full_filename.inspect}: [#{$!.class.name}] #{$1.to_s}" 64. logger.warn $!.backtrace.collect { |b| " > #{b}" }.join("\n") 65. end 66. 67. # Renames the given file before saving 68. def rename_file 69. return unless @old_filename && @old_filename !full_filename 70. if save_attachment? && File.exists?(@old_filename) 71. FileUtils.rm @old_filename 72. elsif File.exists?(@old_filename) 73. FileUtils.mv @old_filename, full_filename 74. end 75. @old_filename = nil 76. true 77. end 78. 79. # Saves the file to the file system 80. def save_to_storage 81. if save_attachment? 82. # TODO: This overwrites the file if it exists, maybe have an allow_overwrite option? 83. FileUtils.mkdir_p(File.dirname(full_filename)) 84. File.cp(temp_path, full_filename) 85. File.chmod(attachment_options[:chmod] || 0644, full_filename) 86. end 87. @old_filename = nil 88. true 89. end 90. 91. def current_data 92. File.file?(full_filename) ? File.read(full_filename) : nil 93. end 94. end 95. end 96. end 97. end And my helper function for showing the pictures looks like this: 1. def picture_for(employee, display_height = nil, img_size = :small) 2. if employee.picture 3. picture_image = employee.picture.public_filename(img_size) 4. link_to(image_tag(picture_image, :height => display_height), employee.picture.public_filename) 5. else 6. image_tag("employee_portrait.gif", :height => display_height) 7. end 8. end If you need more infos, write me please. I''ll appreciate any help. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---