Capistrano/Rails не показывает последние изменения
Я использую rails 4
с nginx
а также passenger
для моего личного проекта. Сегодня я решил использовать capistrano
для развертывания. Мой конфиг capsitrano работает нормально, и я могу развернуть свое приложение в производство. После развертывания я вижу свои изменения в current
папка и последние release
папка. Но я не вижу изменений в браузере.
допустим, у меня есть следующие структуры папок на моем сервере после настройки capistrano.
[1]app_name/app/views/finance/index.html
[2]app_name/releases/<latest_release>app/views/finance/index.html
[3]app_name/current/app/views/finance/index.html
Если я SSH в сервер, то I can see my code changes are applied to folder structure [2] and [3]
но мой код не обновляется в структуре папок [1].
Ниже приведены фрагменты моих файлов шапки:
production.rb
set :port, 22
set :user, 'deploy'
set :deploy_via, :remote_cache
set :use_sudo, false
server 'xx.xxx.x.xxx',
roles: [:web, :app, :db],
port: fetch(:port),
user: fetch(:user),
primary: true
set :deploy_to, "/var/www/app_name"
set :ssh_options, {
forward_agent: true,
auth_methods: %w(publickey),
user: 'deploy',
}
set :rails_env, :production
set :conditionally_migrate, true
deploy.rb
lock '3.4.0'
set :application, 'app_name'
set :repo_url, 'git@github.com:user_name/app_name.git'
# Default branch is :master
set :branch, 'master'
set :use_sudo, false
set :bundle_binstubs, nil
# Default value for :scm is :git
set :scm, :git
# Default value for :format is :pretty
set :format, :pretty
# Default value for :log_level is :debug
set :log_level, :debug
# Default value for :pty is false
set :pty, true
# Default value for :linked_files is []
set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')
# Default value for linked_dirs is []
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')
# Default value for keep_releases is 5
set :keep_releases, 5
set :keep_assets, 3
namespace :deploy do
task :restart do
on roles(:app) do
within release_path do
execute :touch, 'tmp/restart.txt'
end
end
end
end
Нужно ли указывать сервер приложений на current
каталог?
1 ответ
Я исправил проблему, сказав nginx
указать на current/public
папка.
root /var/www/app_name/current/public;