HTML-тип документа отображается с помощью шаблона Snap / Heist

У меня проблемы с https://hackage.haskell.org/package/snap-1.0.0.1/docs/Snap-Snaplet-Heist-Interpreted.html при попытке визуализации шаблона. Эта проблема возникает только в том случае, если в качестве содержимого шаблона указано следующее:

<!DOCTYPE html>
</html>

в то время как следующий контент отображается нормально

<html>
</html>

Так что, похоже, что-то связано с доктайпом HTML.

Исключение, которое возникает:

*** Exception: 
Initializer threw an exception...
/home/chris/Projects/Haskell/pkgscrape/Snap/snaplets/heist/templates/compareForm.tpl "/home/chris/Projects/Haskell/pkgscrape/Snap/snaplets/heist/templates/compareForm.tpl" (line 21, column 2):
unexpected "/"
CallStack (from HasCallStack):
  error, called at src/Snap/Snaplet/Heist/Internal.hs:74:35 in snap-1.0.0.1-6iNEjVc81Z8CCk3FAMxZ8z:Snap.Snaplet.Heist.Internal

...but before it died it generated the following output:
Initializing myapp @ /
Initializing heist @ /heist


CallStack (from HasCallStack):
  error, called at src/Snap/Snaplet/Internal/Initializer.hs:597:13 in snap-1.0.0.1-6iNEjVc81Z8CCk3FAMxZ8z:Snap.Snaplet.Internal.Initializer

1 ответ

Решение

Ваш первый пример не верный HTML. Я думаю, что вы хотите:

<!DOCTYPE html>
<html>
</html>

Тип документа не совпадает с открытием <html> тег.

Браузеры действительно открыты, поэтому они примут вашу версию без жалоб, но Interpreted Heist пытается разобрать шаблоны в допустимый HTML, поэтому он задыхается от конечного тега (</html>) без правильного открывающего тега.

Другие вопросы по тегам