Проблема с типом содержимого ZK Theme и IE Behavior (.htc) - PullRequest
1 голос
/ 29 апреля 2011

ОСНОВНОЙ ВОПРОС:

Есть ли способ установить mime-тип (content-type) элементов внутри баночки, которые помещаются в тему ZK?

Расширенный фон (уже опубликован на форумах ZK без ответа)

Мы создаем тему .jar для нашего приложения, и я получил все, чтобы работать довольно хорошо, используя zkTheme.bat,Однако у меня проблема в том, что мы используем PIE.htc (http://www.css3pie.com)), чтобы предоставить возможности CSS3 для IE 7 и IE 8 (в частности, просто закругленные углы, градиенты и тени).Единственный способ связать это внутри темы - указать на относительный ресурс внутри фляги, например:

  behavior:url(${c:encodeURL(c:cat3('~./',project,'/PIE.htc'))});

, где c: пространство имен для ядра, а project это корневой каталог проекта.Это указывает на правильный файловый ресурс, но заголовок настроен неправильно. Делая wget для файла, мы получаем следующее:

HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Server: Apache-Coyote/1.1
  Last-Modified: Thu, 28 Apr 2011 12:36:54 GMT
  Cache-Control: public, max-age=31536000
  Expires: Fri, 27 Apr 2012 12:36:07 GMT
  Content-Type: ;charset=UTF-8
  Content-Language: en-US
  Content-Length: 28284
  Date: Thu, 28 Apr 2011 14:08:23 GMT
  Connection: keep-alive
Length: 28284 (28K) []

Как видите, тип содержимого пустВозможно, это связано с тем, что большинство обслуживаемых файлов внутри .jar являются ресурсами изображений, а не файлами поведения. Вот что мы получаем, если видим только сам файл.

HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Server: Apache-Coyote/1.1
  Accept-Ranges: bytes
  ETag: W/"28280-1299679133268"
  Last-Modified: Wed, 09 Mar 2011 13:58:53 GMT
  Content-Type: text/x-component
  Content-Length: 28280
  Date: Thu, 28 Apr 2011 14:10:34 GMT
  Connection: keep-alive
Length: 28280 (28K) [text/x-component]

Проблема в том, что Internet Explorer не видит заголовок типа содержимого «text / x-component» и поэтому не использует код внутри .htc для правильного разбора CSS. Мой вопроспоэтому: есть ли способ заставить zk обслуживать этот файл из .jar как правильный тип контента?Оглядываясь на конфигурации, я не вижу способа сделать это.Кроме того, я не могу найти базовый код, который обеспечивает извлечение из theme.jar, чтобы изменить код, чтобы выяснить этот тип содержимого.Я понимаю, что могу просто оставить PIE.htc где-нибудь на веб-сервере и указать на него за пределами jar темы, но это делает этот код гораздо менее переносимым и, следовательно, исключает довольно большую часть нашей логики для использования jar темы вообще.

Обратите внимание: мы подаем это на Tomcat, и я уже проверил web.xml, чтобы убедиться, что text / x-component связан, что это такое (что, очевидно, так или иначевторой wget не получился бы тем, что сделал).

Ответы [ 2 ]

2 голосов
/ 03 мая 2011

Итак, я нашел способ, который максимально быстро и легко соответствовал моим потребностям.По сути, я просто заменил файл mood.htc на файл поведения.htc.dsp и добавил следующую строку в начало:

<%@ page contentType="text/x-component;charset=UTF-8" %> 

Мой первоначальный страх заключался в том, что IE не будет анализировать это как правильноеТип файла из-за расширения, но, видимо, все это заботится о типе содержимого в заголовке, так что это сработало.

1 голос
/ 02 мая 2011

Вы можете предоставить функцию EL , например c: encodeURL , чтобы вручную указать тип содержимого. Вы можете обратиться к этому руководству по определению функций .

...