Images are not shown on server / incorrect path

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.