Yesod генерирует конфликтующие статические идентификаторы файлов - PullRequest
0 голосов
/ 11 октября 2019

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

...