Кто не знает, Typo — это такой блог-движок написанный на Ruby on Rails. Весьма достойная и удобная вещь. А учитываю мою слабость к продвинутым ОО-языками программирования, типа Ruby, еще и удобная платформа для реализации своего функционала.
Вполне естественно желание заставить nginx отдавать всю статику (картинки, видео, css-файлы, js-файлы) не дергая движок лишний раз. Усложняется всё тем, что Typo прозрачно вычисляет путь до файл в соответствии с активированным скином (темой). Путем экспериментов удалось наваять вот такой вот конфиг (тут я привожу фрагмент секции server { … }, отвечающий за отдачу статики):
# указано имя каталога активированной темы
# из каталога /[путь до каталога с typo]/themes/
set $theme "scribbish";
location ~* ^/javascripts/.+.js(?d*)?$ {
root /[путь до каталога с typo]/public;
}
location ~* ^/stylesheets/theme/.+.css(?d*)?$ {
rewrite ^/stylesheets/theme/(.+.css)(?d*)?$ /theme/stylesheets/$1 last;
}
location ~* ^/images/theme/.+.(gif|png|jpg|jpeg)(?d*)?$ {
rewrite ^/images/theme/(.+.(gif|png|jpg|jpeg))(?d*)?$ /theme/images/$1 last;
}
location ^~ /theme/ {
internal;
alias /[путь до каталога с typo]/themes/$theme/;
}