2014-10-14 8 views
2

С помощью сайта Yesod scaffolding существует причина, по которой default-layout.julius отображается после моих других файлов julius в сгенерированном «autogen-XXX.js»?Как я могу сортировать файлы Julius в объединенном файле javascript в Yesod?

Есть ли способ изменить этот порядок, так что default-layout.julius отображается первым?

+0

Я нашел решение моей проблемы: создайте дополнительный файл julius, содержащий код, который я поместил в default-layout.julius, и добавьте соответствующий виджет ко всем обработчикам ... Но меня все еще интересует другое решение, особенно если я могу лучше понять, как работает Йесод :-). – gueux

ответ

3

Widget - это просто трансформатор WriterT, и когда вы добавляете шаблон, он добавляется после всех других ранее добавленных шаблонов. Если вы посмотрите в the scaffold's implementation of defaultLayout, вы увидите, что он просто использует widgetFile на default-layout. Это заканчивается, включая часть hamlet до участка julius, а часть hamlet включает в себя всю виджет отдельной страницы (если это имеет смысл ... это действительно рано здесь прямо сейчас).

Простое решение: поместите содержимое default-layout.julius в другой файл (например, default-layout-early.julius), а затем добавьте $(widgetFile "default-layout-early") перед «default-layout». Это должно делать свое дело.

+0

Большое спасибо за этот полный ответ. Решение и объяснение идеальны :-). – gueux

 Смежные вопросы

  • Нет связанных вопросов^_^