Я использую Snap для создания довольно простого портфеля, который по большей части просто хранит материал в базе данных и показывает его пользователю. Одна из особенностей, которые я хотел бы иметь, - это способность демонстрировать отставку для моего портфолио. Каждый дизайн был бы не более чем одним шаблоном и множеством активов (изображения, css и т. Д.). В организационных целях я хотел бы объединить все элементы единого дизайна и отдельно от шаблонов/активов для моего портфолио.Рендеринг шаблонов с помощью Heist за пределами каталога шаблонов
src/Site.hs
static/images/logo.png
static/css/responsive.css
archives/foo.com/2012-03/index.html
archives/foo.com/2012-03/images/logo.png
archives/foo.com/2012-03/css/styles.css
archives/foo.com/2012-03/favicion.ico
archives/bar.com/2011-08/index.html
archives/bar.com/2011-08/images/logo.png
archives/bar.com/2011-08/css/styles.css
archives/bar.com/2011-08/favicion.ico
я попробовать использовать serveDirectory
на archives
. Запрашивая example.com/bar.com/2012/03/
запросов archives/bar.com/2012/03/index.html
, как и следовало ожидать, и это нормально для некоторых случаев. Я хотел бы иметь возможность использовать некоторые скомпилированные сращивания или Charade, чтобы страница выглядела не такой пустой, когда исходный контент не мог быть реплицирован (обычно потому, что он исходил из давно забытой базы данных).
Возможно, для этого имеет смысл сделать отдельный щелчок для этой цели? Если да, то как мне это сделать? Для справки, snaplet моего сайта является довольно простым и выглядит примерно так:.
app :: SnapletInit App App
app = makeSnaplet "connex" "A snaplet for the connex site." Nothing $ do
h <- nestSnaplet "heist" heist $ heistInit' "templates" defaultHeistState
s <- nestSnaplet "session" sess $ initCookieSessionManager "config/site_key.txt" "session" (Just 86400)
d <- nestSnaplet "db" db pgsInit
addRoutes
[ ("/", indexH siteH)
-- more routes here
, ("", serveDirectory "static")
]
return $ App h s d
where
defaultHeistState = mempty {
hcInterpretedSplices = defaultInterpretedSplices,
hcLoadTimeSplices = defaultLoadTimeSplices
}
(PS У меня есть подобный, но не связанный проект, который позволяет пользователям настраивать внешний вид своего «сайта» В настоящее время настройка ограничено к изображениям и CSS.Если решение этой проблемы можно было бы использовать, чтобы разрешить настройку шаблона макета для каждого пользователя, это было бы здорово. Если нет, не беспокойтесь.)