그래, 비슷한 문제에 관한 게시물이 몇 개 있다는 것을 알고 있지만 2/3 일 동안이 문제를 해결하기 위해 노력했으며 단서가 없습니다. 나는이 튜토리얼을 사용하여 Rails 3.2.8에서 응용 프로그램을 개발하고이를 디지털 오션 서버에 배포했다. https://gorails.com/deploy/ubuntu/12.04 Nginx/Passenger/Capistrano의 레일 앱 : 자산이 작동하지 않습니다.
Nginx 및 Passenger가 설치된 서버에 Capistrano 3.1.0으로 배치하는 작업이 포함된다. Ruby는 rvm의 관리자입니다.
어떤 일이 : -되지 않는 주요 JS에 의해 propably 인한 작동하지 않는 경로를 (삭제/파괴 - 를로드하지 JS - CSS는 application.css 제외하고, (작업이 파일을 코딩 기본적인 CSS) 를로드하지 로드) - 응용 프로그램은 개발 환경에서 잘 작동
나는 시도했다 : - 다음, 개발 환경에 미리 컴파일 자산 생산 로 밀어 - ssh를 으로 연결, 프로덕션 환경에 자산을 사전 컴파일 - nginx를 의 여러 설정 옵션을 시도 - - production.rb 의 여러 설정 옵션을 시도 - 자산 생성하고 후/현재/공공에 있는지 검사를 다시 시작의 nginx : 각
을 시도 sudo service nginx restart
후 나는 것 같아요 구성 문제가 될 수는 있지만 혼자서 발견 할 가능성은 매우 낮습니다. (이것은 내가 직접 배포 한 첫 번째 응용 프로그램이므로) 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
설정/환경/production.rb :
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.assets.precompile += ['grid.css']
config.assets.precompile += ['anything-slider.css']
config.assets.precompile += ['nivo-slider.css']
config.assets.precompile += ['jPlayer.css']
config.assets.precompile += ['lightbox.css']
config.assets.precompile += ['reset.css']
config.assets.precompile += ['anything-slider.js']
config.assets.precompile += ['jplayer.playlist.min.js']
config.assets.precompile += ['jquery-1.11.0.min.js']
config.assets.precompile += ['jquery-ui.js']
config.assets.precompile += ['jquery.jplayer.min.js']
config.assets.precompile += ['jquery.js']
config.assets.precompile += ['jquery.mousewheel.js']
config.assets.precompile += ['jquery.nivo.slider.pack.js']
config.assets.precompile += ['lightbox.min.js']
config.assets.precompile += ['nivo-slider.js']
config.assets.precompile += ['populate_jplayer.js']
config.assets.precompile += ['quickstand.js']
config.assets.precompile += ['script.js']
config.assets.precompile += ['tooltipsy.js']
구성/application.rb :
config.assets.enabled = true
config.assets.initialize_on_precompile = false
Capfile :
# Load DSL and Setup Up Stages
require 'capistrano/setup'
# Includes default deployment tasks
require 'capistrano/deploy'
# Includes tasks from other gems included in your Gemfile
#
require 'capistrano/bundler'
require 'capistrano/rails'
# require 'capistrano/rails/assets'
# require 'capistrano/rails/migrations'
require 'capistrano/rvm'
set :rvm_type, :user
set :rvm_ruby_version, '2.1.3'
# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
을/etc/nginx를/사이트 사용/기본
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name porinstinto.com;
passenger_enabled on;
rails_env production;
root /home/deploy/porinstinto/current/public;
location ~* ^/assets/ {
# Per RFC2616 - 1 year maximum expiry
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
expires 1y;
add_header Cache-Control public;
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
add_header Last-Modified "";
add_header ETag "";
break;
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
application.js
//
//= require jquery
//= require jquery_ujs
//= require anything-slider
//= require jplayer.playlist.min
//= require jquery-ui
//= require jquery.jplayer.min
//= require jquery.mousewheel
//= require jquery.nivo.slider.pack
//= require lightbox.min
//= require nivo-slider
//= require populate_jplayer
//= require quickstand
//= require script
//= require tooltipsy
//= require_tree .
application.css
*
*= require anything-slider
*= require grid
*= require jPlayer
*= require lightbox
*= require nivo-slider
*= require reset
*= require_self
*= require_tree .
*/
UPDATE : I 디스코 Capistrano 프리 컴파일이 비어있는 응용 프로그램 .css 및 .js 파일을 생성하고 있습니다. 나는 개발시 자산을 미리 컴파일하고 업로드하려고 시도했지만 Capistrano가 배포 후에 다시 사전 컴파일 된 것으로 보이고 자산이 빈 파일에 겹쳐 쓰여진 것처럼 보입니다.
단서가 있습니까?
Nginx 로그를 확인하십시오. 자산에 대한 요청을 볼 수 있습니까? 그 요청은 정확합니까 (철자법, 경로)? Nginx가 404를 돌려주고 있습니까? – Substantial
/var/log/nginx/error.log가 비어 있습니다. tail -f log/production.log가 자산을 요청하지 않는 것으로 보입니다 ... –
213.27.137.58 at 2014-10-15 07:07:41 -0400 처리 중 EntriesController # index 처리 중 HTML로 표현 렌더링 된 레이아웃/_next_concert.html.haml (1.0ms) 렌더링 된 레이아웃/_social_network.html.haml (2.1ms) . . . 렌더링 된 레이아웃/_notices.html.haml (0.3ms) 렌더링 된 레이아웃/_copyright.html.haml (1.0ms) 59 초에 200 OK 완료 (조회수 : 45.2ms | ActiveRecord : 5.8ms) ' –