TLDR;Есть ли простой способ сказать Yesod, чтобы он просто размещал одну папку статически, как есть, и использовал обычные строковые ссылки?
Я только что купил хорошую тему Bootstrap HTML + CSS + JS,и я пытаюсь использовать Yesod с ним.
Yesod сбивается с толку при создании статических идентификаторов файлов (например, blueprint_screen_css
) для многих файлов CSS и JS, когда я копирую их в папку static
.
Я преобразовал HTML в Гамлет (мне сначала пришлось раскошелиться и исправить инструмент html2hamlet)
Я только начал заполнять HTML-файл битами Haskell.
Я понимаю и следую https://github.com/yesodweb/yesod/wiki/yesod_tutorial-filling_in_the_layout
В моем новом default-layout-wrapper.hamlet
я пытаюсь преобразовать простые пути следующим образом:
<!--<link href="./assets/fonts/feather/feather.min.css" rel="stylesheet">-->
<link href=@{StaticR assets_fonts_feather_feather_min_css} rel="stylesheet">
Запуск stack exec -- yesod devel
Дает ошибки:
src/Settings/StaticFiles.hs:21:1: error:
Multiple declarations of ‘assets_libs_highlightjs_styles_atelier_sulphurpool_dark_css’
Declared at: src/Settings/StaticFiles.hs:21:1
src/Settings/StaticFiles.hs:21:1
|
21 | staticFiles (appStaticDir compileTimeAppSettings)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/Settings/StaticFiles.hs:21:1: error:
Multiple declarations of ‘assets_libs_highlightjs_styles_atelier_heath_dark_css’
Declared at: src/Settings/StaticFiles.hs:21:1
src/Settings/StaticFiles.hs:21:1
|
21 | staticFiles (appStaticDir compileTimeAppSettings)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
Я думаю, это потому, что несколько символов ,-.
и т. Д. В именах файлов преобразуются в _
в идентификаторах, поэтому возникает конфликт. Должен ли я переименовать их всех (100+), а затем отредактировать сторонние (и минимизированные) библиотеки, чтобы это работало? Кто-то прокомментировал https://www.yesodweb.com/blog/2013/01/adding-css-js с другой проблемой, связанной с генерированием этих идентификаторов.
Многие люди хотели бы использовать темы / шаблоны / код других людей в Yesod.
Есть липростой способ сказать Yesod просто разместить единственную папку assets
как есть и использовать обычные строковые hrefs?
Я очень хочу включить свой новый код в правильный путь Йесода.
Спасибо, Haskellers