在Capistrano部署后,通过圣地神殿上传的我的图像不再显示(Rails + SQlite3)

时间:2018-09-23 08:55:33

标签: ruby-on-rails sqlite shrine

当我尝试部署新应用程序时,一切都进行得很顺利。但是我曾经遇到过这样的问题,即在部署capistrano之后,数据库中的帖子会消失。我发现,这与我的Sqlite3 DB有关,并且我必须在我的database.yml中添加用于生产的共享路径。那就是为什么我添加:

    production:
  adapter: sqlite3
  database: /home/deploy/apps/Blogapp/releases/shared/db/production.sqlite3

现在,在设置上限之后,我的帖子仍然存在,但是我的图像不再显示了。我想我必须把它们放进去,或者将它们以某种方式链接到该文件夹​​,但我不确定如何。 我的shrine.rb看起来像这样:

 require 'shrine'
require 'shrine/storage/file_system'

Shrine.storages = {
    # temporary storage
    cache: Shrine::Storage::FileSystem.new('public', prefix: 'uploads/cache'),
    enter code here
    # permanent storage
    store: Shrine::Storage::FileSystem.new('public', prefix: 'uploads/store'),
}

Shrine.plugin :activerecord
Shrine.plugin :cached_attachment_data # for forms

将上传/缓存更改为/home/deploy/apps/Blogapp/releases/shared/uploads/cache

并上传/存储到

/home/deploy/apps/Blogapp/releases/shared/uploads/store

似乎无法解决问题……有什么想法吗?

1 个答案:

答案 0 :(得分:0)

转到/home/deploy/apps/Blogapp/current/public,并与ls -l进行检查,是否有指向/home/deploy/apps/Blogapp/releases/shared/uploads的链接。

将自定义文件夹添加到/ shared时,必须告诉capistrano对它们进行符号链接,但需要进行一些更改。

首先,将路径更改为/shared/public

/home/deploy/apps/Blogapp/releases/shared/public/uploads

现在,将其添加到您的deploy.rb

set :linked_dirs, fetch(:linked_dirs, [])+%W{public/uploads}

现在,在部署之后,capistrano将创建从current/public/uploadsshared/public/uploads的符号链接。