【问题标题】:RoutingError for previous uploaded images after Capistrano deployCapistrano 部署后先前上传的图像的 RoutingError
【发布时间】:2018-04-18 16:13:09
【问题描述】:

我有一个带有上传文档功能的 Rails 5.1 应用程序。

我使用 Paperclip(5.1 版)实现了上传功能。上传内容存储在 Amazon S3 上。上传文档最初工作正常,但是当我使用 Capistrano 将应用程序重新部署到生产服务器时,之前上传的图像会损坏。当我查看 production.log 时,我看到了这个 RoutingError:

    F, [2017-11-06T14:07:26.682736 #446] FATAL -- : [012253d0-c103-4e57-8065-33830ad76b9b] ActionController::RoutingError

(No route matches [GET] "/system/absences/attest_pics/000/000/008/original/boekcover.jpg"):

在视图中,我实现了指向文档的链接,如下所示:

        <% if absence.attest_pic.present? %>
        <td>
          <%= link_to "Download", absence.attest_pic.url %>
        </td>
        <% end %>

有没有人有过这种行为的经验?

感谢您的帮助,

安东尼

【问题讨论】:

标签: ruby-on-rails paperclip


【解决方案1】:

查看您的文件夹,在服务器中。如果路径 your_app/current/public/system 不存在,需要修改文件:config/deploy.rb accept the public/system

set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system ')

【讨论】:

  • 我查了一下,服务器上确实存在路径my_app/current/public/system
  • 还有你要的文件吗?
  • 进入公用文件夹执行: $ ls system/absences/attest_pics/000/000/008/original/boekcover.jpg 命令找到文件了吗?
  • 我执行了命令,我得到:无法访问system/absences/attest_pics/000/000/008/original/boekcover.jpg:没有这样的文件或目录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多