Uniвсячина

понемножку о Linux и программировании

Настройка Nginx для работы с Typo

Кто не знает, 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/;
}

Comments