Перенаправление папок в config.rb Миддлмана

Я использую генератор статических сайтов Middleman для создания своего сайта. В настоящее время у нас есть целевые страницы, которые мы проксируем через config.rb как таковые:

# landing page template directories to redirect
landingpage_seo_templates = Dir['source/landingpages/seo/*.erb']

# point all landingpage/seo templates to the root
landingpage_seo_templates.map! do |tpl_name|
  tpl_name = File.basename(tpl_name).gsub(/.erb$/, '')
  proxy "/#{tpl_name}/index.html", "/landingpages/seo/#{tpl_name}.html", :ignore => true
end

Это указывает на все файлы в каталоге от /landingpages/seo/{filename}.erb до /{filename}.erb при построении сайта. Однако это не работает для подпапок.

Мой вопрос в том, как мне изменить этот скрипт для отображения подпапок. Например, я хотел бы, чтобы файлы в /landingpages/seo/foo/{filename}.erb отображались в /foo/{filename}.erb

Я знаю, как это сделать через .htaccess, однако я хотел бы узнать, как это сделать через config.rb.

Заранее спасибо.


person SkyOut    schedule 27.01.2014    source источник


Ответы (1)


Если вы измените шаблон файла...

landingpage_seo_templates = Dir['source/landingpages/seo/**/*.erb']

... вы должны получить все шаблоны erb в дереве seo.

Затем вам нужно изменить вычисление tpl_name (вероятно, для этого есть более умный/краткий способ):

# point all landingpage/seo templates to the root
landingpage_seo_templates.map! do |tpl_name|
  tpl_name = tpl_name.gsub(/.erb$/, '')
  tpl_name = tpl_name.gsub(/source\/landingpages\/seo\//, '')
  proxy "/#{tpl_name}/index.html", "/landingpages/seo/#{tpl_name}.html", :ignore => true
end
person Volker Rose    schedule 29.01.2014
comment
Идеальный! Большое тебе спасибо. - person SkyOut; 29.01.2014