2016-11-08 5 views
1

Nginxを運用モードで使用している場合、使用しているいくつかのGemのアセットファイルはロードされません。私はかなりNginxの設定ファイル内のロケーションブロックと関係があると確信していますが、Nginxがファイルのある場所を指し示すように何を追加するのか分かりません。Nginxを使用している場合のGemアセットファイル

2016/11/07 21:04:36 [error] 22745#22745: *51175 open() "/home/john/rails/cable/public/sidekiq/javascripts/dashboard.js" failed (2: No such file or directory), client: 69.49.80.136, server: 66.207.0.133, request: "GET /sidekiq/javascripts/dashboard.js HTTP/1.1", host: "66.207.0.133", referrer: "http://66.207.0.133/sidekiq" 

明らかに第二の位置のブロックが必要なため、すべての要求をリダイレクトしている:

問題の宝石は、nginxのログにエラーがあるsidekiqとラックミニプロファイラ

upstream cable { 
    server unix:///tmp/cable.sock; 
} 

server { 
    listen 80; 
    server_name 66.207.0.133; 
    root /home/john/rails/cable/public/assets; 

    location/{ 
    proxy_pass http://cable; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 

    location ~* \.(css|js|otf|woff|ttf|svg|eot)$ { 
    root /home/john/rails/cable/public/; 
    } 

} 

です.jsファイルと.cssファイルを間違った場所に置いてしまいますが、どのように/sidekiq/*.jsへのリクエストを正しいファイルにリダイレクトできますか?

+1

宝石の資産ファイルの場所を知っていますか? –

+0

そして正しい場所は...? – cnst

+0

受け入れてくれてありがとう/ + 1 /賞品、+1! – cnst

答えて

2

まずファイルシステムに正しいファイルがあるfindが必要です。

find/-path "*/javascripts/dashboard.js" 

ウェブ検索では、/home/site/homepage_production/shared/bundle/ruby/1.9.1/gems/sidekiq-2.16.1/web/assets/javascripts/dashboard.jsである可能性があります。だから、

、あなたが得た場合/sidekiq/javascripts/dashboard.jsからウェブ上のことに役立つ、と/sidekiq/内のすべての要求は、静的な資産のためにあることは、次を使用する必要があります。詳細については

location ^~ /sidekiq/ { 
    alias /home/site/homepage_production/shared/bundle/ruby/1.9.1/gems/sidekiq-2.16.1/web/assets/; 
} 

、以下を参照してください。

関連する問題