当我尝试部署新应用程序时,一切都进行得很顺利。但是我曾经遇到过这样的问题,即在部署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
似乎无法解决问题……有什么想法吗?
答案 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/uploads
到shared/public/uploads
的符号链接。