Где сращивания Шекспира ищут свои файлы
Я пытаюсь запустить шаблоны Шекспира; в частности Text.Hamlet. я имею $(shamletFile "HTML/index.hamlet")
(См. Примечания), и когда я компилирую файл, я получаю сообщение об ошибке, сообщающее, что файл не существует. Поэтому я пробовал различные комбинации путей к файлам, пытаясь угадать, какой рабочий каталог используется соединением, но безуспешно.
Где сращивания Шекспира ищут свои файлы? Это где-то задокументировано?
ЗАМЕТКИ
- Этот путь относительно исходного файла с использованием шаблона.
- Я не использую полный фреймворк Yesod, просто шаблонный движок.
1 ответ
shamletFile
берет стандарт FilePath
в качестве аргумента и, следовательно, оценивается относительно "текущего локального каталога". "Текущий" во время оценки шаблона Haskell - т.е. фаза компиляции. Как отметил @arrowd, обычно это основной каталог проекта.
Обратите внимание, что если вы используете Yesod, это больше не будет правдой, как во время сборки yesod-bin
добавляет templates/
префикс к каждому шекспировскому файлу (и он там жестко запрограммирован).