Несмотря на то, что я находился в каталоге /public
, если я посещаю http://site.example.com/favicon.ico
Я получаю страницу 404. Интересно, что если я попытаюсь посетить http://site.example.com/500.html
, я также получаю страницу 404, которая заставляет меня думать, что файлы /public
вообще не обслуживаются. Я бегу Nginx с Unicorn. Существуют ли какие-либо настройки в Rails, которые могли бы отключить обслуживание /public
активов?Rails 3.1 favicon.ico не обслуживается
Редактировать Мой Nginx конфигурации:
server {
listen 80;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# Location of our static files
location ~ ^/(assets)/ {
root /srv/ctr/current/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
# error_page 500 502 503 504 /500.html;
# location = /500.html {
# root /var/rails/testapp/public;
# }
}
У меня есть root :to => 'reports#index'
в моих маршрутах, но я не вижу, как это может сделать разницу.
Решение я переместил линию root /srv/ctr/current/public;
выше keepalive_timeout 5;
Я не могу подтвердить, что Rails 3.1, Nginx и Единорог игнорировать мой Favicon, 404.html или 500. html (из моего общедоступного каталога). Вот моя конфигурация, чтобы проверить, есть ли какие-либо отличия: https://gist.github.com/1589113 Удачи :) –