我有一個運行在獨角獸/ nginx下的Ruby on Rails應用程序。問題在於nginx不會爲我的所有資產提供服務。 JS文件似乎已被加載,但圖像未提供。nginx不會提供我所有的資源(Ruby on Rails 4)
這裏是我的nginx的conf文件:
upstream unicorn {
server unix:/tmp/unicorn.aiccrr.sock fail_timeout=0;
}
server {
listen 80 default deferred;
server_name exemple.com;
root /home/aiccrr/aiccrr/public;
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
location ~ \.(js|css|png|jpg|jpeg|gif|ico|html)$ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 1G;
keepalive_timeout 10;
}
unicorn.rb文件:
root = "/home/aiccrr/aiccrr"
working_directory root
pid "#{root}/tmp/pids/unicorn.pid"
stderr_path "#{root}/log/unicorn.log"
stdout_path "#{root}/log/unicorn.log"
listen "/tmp/unicorn.aiccrr.sock"
worker_processes 2
timeout 30
我做耙資產:今天預編譯至少10倍,並加入這行來production.rb :
config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif]
我用盡了想法。你有什麼想法嗎?
預先感謝您。
您是否運行過'rake assets:precompile',它應該將您的資產編譯到您的'public'文件夾中? – pduersteler
嗨,謝謝你的回覆。是的,我確實運行過它。 – west
爲什麼你給'$ uri/index.html'更高的優先級?你是否確定該文件不存在? –