В моем приложении я использую загрузку файлов с помощью Carrierwave. Я делаю изменения размера изображений с MiniMagick и сохранить изображение в виде большой версии, как это:Почему link_to helper показывает неправильный путь в Rails-производстве?
version :large do
resize_to_limit(100, 100)
end
В представлении я называю это «большой» версии:
<%= image_tag @user.avatar.url(:large) %>
В окр развития, появляется изображение и путь правилен:
<img src="/uploads/user/....">
Но в производство окр, не получает изображение отсутствует, потому что оказывает WRO нг путь (он дописывает APPNAME):
<img src="appname/uploads/user/....">
я использую сервер Ubuntu с Nginx, Unicorn, Capistrano, Ruby 2.0.0p353 и Rails 4.0.2
nginx.conf:
upstream unicorn {
server unix:/tmp/unicorn.appname.sock fail_timeout=0;
}
server {
listen 80 default deferred;
server_name appname.domain.com;
root /home/deployer/apps/appname/current/public;
location ~ ^/(assets)/ {
root /home/deployer/apps/appname/current/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
carrierwave загрузчик:
class UserUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :large do
resize_to_limit(100, 100)
end
end
Как выглядит ваша конфигурация nginx? У вас есть промежуточное ПО промежуточного уровня, которое переписывает пути загрузки, или nginx обслуживает статические активы и т. Д.?? – cpjolicoeur
@cpjolicoeur должен быть установкой по умолчанию, я добавил nginx.conf – crispychicken
как насчет вашей конфигурации несущей? – cpjolicoeur