1

基本的な質問:

ZKテーマに引き込まれるjar内の要素のmime-type(content-type)を設定する方法はありますか?

拡張された背景(応答なしですでにZKフォーラムに投稿されています)

アプリケーション用にテーマ.jarを作成しており、zkTheme.batを使用してすべてがうまく機能するようになりました。ただし、私が抱えている問題は、IE7とIE8にCSS3機能を提供するためにPIE.htc( http://www.css3pie.com )を使用していることです(具体的には、角の丸み、グラデーション、ボックス) -風邪)。テーマ内でこれをリンクする唯一の方法は、次のようにjar内の相対リソースを指すことです。

  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) []

ご覧のとおり、content-typeは空白です。これはおそらく、提供されている.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]

したがって、根本的な問題は、InternetExplorerが「text/ x-component」のcontent-typeヘッダーを認識しないため、CSSを正しく解析するために.htc内のコードを利用しないことです。したがって、私の質問は次のとおりです。zkに.jarからこのファイルを適切なコンテンツタイプとして提供させる方法はありますか?構成を見回すと、それを行う方法がわかりません。また、このコンテンツタイプを把握するためにコードを変更するために、theme.jarからの抽出を強化する基になるコードが見つかりません。PIE.htcをWebサーバーのどこかにドロップして、テーマjarの外でポイントできることはわかっていますが、このコードの移植性が大幅に低下するため、テーマjarを使用するロジックのかなりの部分が不要になります。

注意:これはTomcatで提供されており、web.xmlをチェックして、text / x-componentがバインドされていることを確認しました(これは明らかにそうであるか、2番目のwgetにはありません)。それが何をしたかがわかりました)。

4

2 に答える 2

2

そのため、自分のニーズに合った回避策をできるだけ迅速かつ簡単に見つけました。基本的に、behavior.htc ファイルを behavior.htc.dsp ファイルに置き換え、次の行を先頭に追加しました。

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

私の最初の懸念は、拡張子のためにIEがこれを適切なファイルタイプとして解析しないことでしたが、どうやらすべてがヘッダーのコンテンツタイプを気にしているので、これはうまくいきました。

于 2011-05-02T20:13:45.587 に答える
1

c:encodeURLのようなEL関数を提供して、コンテンツ タイプを自分で手動で指定できます。この Defining Functions のチュートリアルを参照してください。

于 2011-05-02T12:51:04.917 に答える