2012-01-06 4 views
0

Хорошо, мой стек Ubuntu, Nginx 1 и Unicorn. Я хочу, чтобы Nginx служил предварительно скомпилированным gzip статического содержимого.nginx: gizip_static: кажется, не работает

соответствующие Nginx конфигурация:

location ~ ^/assets/ { 
    gzip_static on; 
    gzip_http_version 1.1; 
    gzip_proxied  expired no-cache no-store private auth; 
    gzip_disable  "MSIE [1-6]\."; 
    gzip_vary   on; 
    expires 24h; 
    add_header Cache-Control public; 
} 

затем из другого НФА вопроса я побежал Трассирование, чтобы увидеть, если они запрашиваются, результаты:

open("/media/sf_ape/public/assets/application-ae30e133eabbb10d9464189d3fb71e25.js.gz", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 9 

Я проверил этот файл существует. Однако, когда я смотрю журнал доступа, он предоставляет обычный .js-файл, а не .gz. Я проверил, что запрошенный заголовок указывает gzip, и что заголовок ответа теперь отображается gzip. Я немного искал Google, но пока не нашел ответа на мою проблему. Я мог бы пропустить его где-нибудь, но любая помощь будет оценена по достоинству.

+0

Звучит странно, он должен был обслуживать статические файлы. –

+0

Он обслуживает файлы; однако он не поддерживает версии gzip, которые находятся в каталоге с одинаковыми временными отметками. – loneaggie

+0

Даже незнакомец. –

ответ

0

В конце концов я понял это. Когда вы запускаете активы рейка: прекомпиляция всех статических активов компилируется и перемещается в/public. Трюк, например, состоит в том, что .js и .js.gz имеют точно такую ​​же метку времени. Как только я касался * .gz, все было правильно. Надеюсь, что это кому-то поможет.

Смежные вопросы