我正在使用静态站点生成器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了解如何执行此操作。
提前谢谢你。
答案 0 :(得分: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