2013-08-01 2 views
1

EDIT для наглядности:Выходной путь Middleman

Мне интересно, можно ли установить выходной путь для файлов в сборке Middleman. В организационных целях я хочу сгруппировать тип страницы в папку, чтобы не допустить ее из основного исходного каталога. Однако на сборки/сервер, я хотел бы, чтобы вынести на другой путь:

/source 
    index.html 
    /landingpages 
     landingpage1.html 
     landingpage2.html 

У меня есть :directory_indexes включен в мой конфигурационный файл хотел бы быть в состоянии иметь файлы в landingpage выход к корневому каталогу:

/build 
    index.html 
    /landingpage1 
     index.html 
    /landingpage2 
     index.html 

Возможно ли это достичь каким-либо образом с помощью файла config.rb и по-прежнему отображаться правильно в файле Sitemap? Я предпочел бы не сделать это с помощью .htaccess

Благодарности

+0

Почему не '.htaccess'? – Shoe

ответ

2

Метод я использовал в текущем проекте базируется на прокси, а также должны решить случай:

landingpage_templates = Dir['source/landingpages/*.html'] 

landingpage_templates.map! do |tpl_name| 
    tpl_name = File.basename(tpl_name).gsub(/.html$/, '') 
    proxy "/#{tpl_name}/index.html", "/landingpages/#{tpl_name}.html", :ignore => true 
end 
+0

Это сработало отлично. Я просто взял часть: ignore, потому что я хотел, чтобы они были проиндексированы. Спасибо! – SkyOut

+0

Добро пожаловать. Рад, что это зарегистрировано где-то, например. здесь на SO :) –

0

Вы должны быть в состоянии сделать что-то вроде этого:

page "/file1/index.html", :proxy => "/somefolder/file1.html" 
page "/file2/index.html", :proxy => "/somefolder/file2.html" 

Я думаю, вам лучше using directory indexes вместо хотя и организация ваши файлы, такие как:

/source 
    index.html 
    file1.html 
    file2.html 

В вашей config.rb

activate :directory_indexes 
+0

Это не сработало для отдельных файлов, и мне нужно перенаправить целые каталоги. – SkyOut

+0

Вам нужно предоставить дополнительную информацию о том, чего вы пытаетесь достичь. Можете ли вы дать больше информации о вашей проблеме? – jordelver

+0

обновленный вопрос уточнить – SkyOut