0

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

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

现在我的帖子在上限部署后仍然存在,但我的图像不再显示。我想我必须把它们,或者以某种方式将它们链接到那个文件夹,但我不确定如何。我的神社.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

似乎没有解决问题......有什么想法吗?

4

1 回答 1

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/uploadsto的符号链接shared/public/uploads

于 2018-09-23T13:27:40.313 回答