Недавно я выпустил обновление своего веб-приложения на Rails 3.1. Я включаю это приложение на Unbuntu 10.04 VPS с Thin на бэкэнде и Nginx спереди. Чтобы мое приложение работало с новым конвейером ресурсов Rails, я добавил в свой файл конфигурации Nginx следующую запись:
location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ {
access_log off;
gzip_static on; # to serve pre-gzipped version
expires max;
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;
}
Это более или менее пришло прямо из гид, и это работает. Однако теперь я замечаю в своих тонких журналах следующие записи:
cache: [GET /] miss
cache: [GET /designs/victoria/images/gallery-3-zoom.png] miss, store
cache: [GET /blank.html] stale, invalid, store
cache: [GET /blank.html] stale, invalid, store
cache: [GET /robots.txt] stale, invalid, store
cache: [GET /parties/new] miss
Таких очень много. Большинство из них предназначены для /blank.html. Любые запросы активов предназначены для активов без конвейерной обработки. Некоторые из них являются URL-адресами прямо из моего файла маршрутов. Мои вопросы:
Любое понимание приветствуется! Спасибо.
Записи "cache:", похоже, поступают из Rack :: Cache, который включен в Rails в версии 3.1 при включенном конвейере ресурсов. Это хорошо, так как кеширует HTTP через заголовки http. По умолчанию в Rack :: Cache включена опция подробного вывода, поэтому вся трассировка ведется в STDERR., поэтому он появляется в моих ранее не шумных тонких журналах.
Blank.html кажется часть исправления IE6, чтобы браузер прозрачно отображал фон iframe при наведении курсора. Понятия не имею, почему его запрашивают с такой частотой, но файл по умолчанию находится в Rails и всегда был там.
С учетом всего сказанного, мое приложение выглядит здоровым и в хорошей форме.