Привет, я развертываю свое первое приложение Rails на сервере Ubuntu 16, используя Capistrano
. Все прошло гладко, за исключением того, что изображения не отображаются в рабочей среде.Изображения, которые не отображаются после развертывания с сервером Passenger/Capistrano на Nginx
На сервере изображение расположены на этом пути: /myapp/current/public/assets
Но если я смотрю на это в браузере моих сломанных ссылки на картинки дает мне это (смотрите рисунок), это сломанная ссылка для заголовка образ.
странное дело в том, что есть .svg
файл в /myapp/current/public/assets
, который показывает вверх отлично в браузере, в рисунке путь показан
это мой Capfile
# Load DSL and set up stages
require "capistrano/setup"
# Include default deployment tasks
require "capistrano/deploy"
set :rbenv_type, :user # or :system, depends on your rbenv setup
set :rbenv_ruby, '2.3.1'
require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
Это config/deploy.rb
# config valid only for current version of Capistrano
lock '3.6.1'
set :application, 'myapp'
set :repo_url, '[email protected]:DadiHall/myapp.git'
# Default deploy_to directory is /var/www/my_app_name
set :deploy_to, '/home/deploy/myapp'
set :linked_files, %w{config/database.yml config/secrets.yml}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :touch, release_path.join('tmp/restart.txt')
end
end
after :publishing, 'deploy:restart'
after :finishing, 'deploy:cleanup'
конец
Вот environments/production.rb
Rails.application.configure do
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
config.assets.js_compressor = :uglifier
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
config.assets.digest = true
config.assets.initialize_on_precompile = false
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
config.log_level = :debug
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.active_record.dump_schema_after_migration = false
Braintree::Configuration.environment = :sandbox
Braintree::Configuration.merchant_id = ENV['merchant_id']
Braintree::Configuration.public_key = ENV['public_key']
Braintree::Configuration.private_key = ENV['private_key']
end
В /etc/nginx/sites-enabled/default
У меня есть следующие строки
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name mydomain.com;
passenger_enabled on;
rails_env production;
root /home/deploy/myapp/current/public;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
это журнал Nginx Error
[ 2016-09-28 06:25:02.4500 1594/7f900ee89700 age/Sha/ApiServerUtils.h:794 ]: Log file reopened.
[ 2016-09-28 09:45:43.7508 1597/7f2326502700 age/Cor/CoreMain.cpp:819 ]: Checking whether to disconnect long-running connections for process 1978, application /home/deploy/hlinreykdal/current/public (production)
App 21337 stdout:
App 21405 stdout:
[ 2016-09-28 10:30:31.0631 1597/7f2326502700 age/Cor/CoreMain.cpp:819 ]: Checking whether to disconnect long-running connections for process 21405, application /home/deploy/hlinreykdal/current/public (production)
App 23240 stdout:
App 23308 stdout:
[ 2016-09-28 10:41:40.1769 1597/7f2326502700 age/Cor/CoreMain.cpp:819 ]: Checking whether to disconnect long-running connections for process 23308, application /home/deploy/hlinreykdal/current/public (production)
App 24329 stdout:
App 24397 stdout:
Я пробовал bundle exec rake assets precompile
без какой-либо удачи.
Я развертывается и снова перезапустить nginx
, без каких-либо удачи
Я попробовал почти каждый ответ на подобные вопросы здесь на переполнение стека, но ничего не похоже на работу.
Я что-то упустил?
Я уверен, что эта проблема имеет какое-то отношение к конвейеру активов, но я не уверен, как ее исправить.
Может кто-нибудь, пожалуйста, взгляните на это и посоветуйте мне.
заранее спасибо
Как я могу это сделать на сервере? Я имею в виду, как я могу это сделать во время развертывания на сервере? – DaudiHell
Вы меняете исходное дерево или процессы развертывания для его учета. Ваш процесс capistrano уже связывает общественность/систему, поэтому я бы просто использовал это. – Eric
ОК спасибо, я понял, но я не понимаю :) Были ли и как я могу изменить исходное дерево? – DaudiHell