Неверный тип MIME для запросов GET

Я уже давно использую Lift Web Framework только как REST-сервис, но теперь мне нужно использовать его как отдельный инструмент.

<lift:surround with="default" at="content">
  <head>
      <script data-lift="with-resource-id" src="/test.js" type="text/javascript"></script>
  </head>

  <h2>Welcome to your project!</h2>
  <p><lift:helloWorld.howdy /></p>
</lift:surround>

У меня есть приведенный выше очень простой шаблон Lift. Проблема в том, что когда я просматриваю его в браузере, что-то добавляет <?xml> DOCTYPE, и браузер по умолчанию интерпретирует ресурс как XML вместо простого HTML.

Как мне сообщить Jetty/Lift, что мой статический файл — это HTML?


person flavian    schedule 19.05.2013    source источник


Ответы (2)


Похоже, вы используете тип документа XHTML. В файле Boot.scala вы можете попробовать добавить:

LiftRules.htmlProperties.default.set((r: Req) =>
  new Html5Properties(r.userAgent))

Это должно настроить ваше приложение на использование HTML5 и должно отключить добавление заголовка кодирования <?xml....

Кроме того, как упомянул @VasyaNovikov, теги с префиксом lift: являются более старой конструкцией (хотя во многих документах они все еще упоминаются). Они по-прежнему работают, но будут проблемы с HTML5. Рекомендуется использовать любую из эквивалентных форм:

Оригинал:

<lift:surround with="default" at="content">...</lift:surround>

HTML5:

<span data-lift="surround?with=default;at=content"></span>    
<span class="lift:surround?with=default;at=content"></span>

Если вы хотите использовать разновидность lift:, самая большая проблема, с которой вы столкнетесь, заключается в том, что в HTML5 теги и атрибуты преобразуются в нижний регистр, поэтому <lift:helloWorld.howdy /> будет интерпретироваться как <lift:helloworld.howdy />, и Lift не найдет фрагмент. Использование <span data-lift="helloWorld.howdy"></span> должно позволить вам обойти это.

person jcern    schedule 19.05.2013
comment
О, извините, да, я имел в виду Boot.scala. Я только что обновил ответ - person jcern; 19.05.2013

Может быть, добавление заголовка поможет?

<html>
<head>...

Пример: https://github.com/lift/lift_25_sbt/blob/master/scala_29/lift_basic/src/main/webapp/index.html

В общем, вы используете очень старый подход к шаблонам с пользовательскими тегами <lift:surround>, <lift:helloWorld> и т.п. Где ты достал их? Я предлагаю использовать новый стиль шаблона, как в ссылке, которую я разместил.

person VasiliNovikov    schedule 19.05.2013