У меня практически та же проблема, что и у этого вопрошающего: ошибка маршрутизации скрепки. Сервер выдает 404 для статического файла (который присутствует!), поэтому вызывается Rails, а затем возникает ошибка маршрутизации.
Приложение My Rails 3.1 использует скрепку для прикрепления файлов, но при обслуживании файлов в рабочей среде Rails регистрирует следующую ошибку:
Started GET "/system/images/9/thumb/Large%20image.jpg?1320149338" for [...]
ActionController::RoutingError (No route matches [GET] "/system/images/9/thumb/Large%20image.jpg"):
Соответствует записи журнала доступа NGINX:
"GET /system/images/9/thumb/Large%20image.jpg HTTP/1.1" 404 728 "-" [...]
Итак, несколько наблюдений:
- Раньше такого не было, и прошлые изображения с почти идентичными URL-адресами до сих пор работают, например:
/system/images/1/thumb/StoneSkimming%20Demyhb%20Art%203.jpg
обслуживается правильно. - Файлы изображений были загружены и преобразованы ImageMagick правильно — я проверил, что все ожидаемые файлы находятся в нужном месте и являются действительными файлами JPEG с правильным изображением в них.
- Права доступа к файлам соответствуют ожиданиям и соответствуют файлам, которые все еще работают.
- Записи в базе данных для соответствующей модели выглядят правильно.
- Добавление/удаление строки запроса или ввод URL-адреса непосредственно в браузер дает тот же результат, что и встроенный тег
<img>
: изображение не найдено.
Может ли кто-нибудь указать мне правильное направление здесь? У меня возникли проблемы с тем, как протестировать/отладить это, потому что ошибка не универсальна для приложения.
Я использую Capistrano для развертывания, поэтому /public/system
— это символическая ссылка на общий каталог. Я чувствую, что это не проблема, поскольку старые изображения в том же месте работают нормально.
config/deploy.rb
в соответствии с описанием Paperclip. Боюсь, я не думаю, что дело было в этом. 27.02.2012