После развертывания Capistrano мои изображения, загруженные через shrine, больше не отображаются (Rails + SQlite3)
Когда я пытаюсь развернуть свое новое приложение, все прошло гладко. Но раньше у меня была проблема с тем, что мои посты в моем БД исчезали после развертывания capistrano. Я узнал, что это связано с моей базой данных Sqlite3 и что мне нужно добавить общий путь для производства в моем файле 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 ответ
Идти к /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
,