0

Web アプリケーションの CND に静的ファイルをプッシュしています。そのために、私は正常CDNResourceHandlerに動作する OmniFaces を使用しました。ただし、私のスタイルは従いません。

私は次のようにマッピングされています:

javax.faces:jsf.js=http://.../jsf.js,
primefaces:primefaces.js=http://.../primefaces.js,
primefaces:jquery/jquery.js=http://.../jquery.js,
primefaces:jquery/jquery-plugins.js=http://.../jquery-plugins.js,
primefaces:idlemonitor/idlemonitor.js=http://.../idlemonitor.js,
        
primefaces-smoothness:theme.css=http://.../theme.css,
primefaces:primefaces.css=http://.../primefaces.css,
styles:main04.css=http://.../main04.css,

私のスタイルがすべてオフであることを除いて、これはうまく機能します。theme.cssレンダリング結果は、 ANDprimefaces.cssがロードされていない場合と同じです。

によって処理されるこれらのリソースを削除するCDNResourceHandlerと、ページは必要に応じて読み込まれます。これらのファイルがページ上で読み込まれていることを確認できます ( Inspect Element-> resourcesWeb ブラウザーで、これらが存在し、読み込まれていることを示します)。

PrimeFaces スタイルが CDN 経由で機能しないという経験をした人はいますか? これを機能させる方法はありますか?

私のアプリケーションは以下で実行されます:

  • オムニフェイス 1.6
  • プライムフェイス3.5
  • マジョラ 2.2
  • Glassfish 3.1.2.2 (Glassfish 4 でも試しました)

編集 1

これをもう少し詳しく調べたところ、css ファイルが処理されていない#{resources[]}ようです。CSS 内の何かがそのまま残っています。これは、ファイルがFaces Servlet url-pattern. これにより、私が探しているものを達成するには、CND リソースを処理する必要があると信じるようになります...?

編集 2

奇妙なことに、生成された HTML には読み込まれたすべてのリソースが含まれています。CDN 経由で読み込まれた場合、リソース (Primefaces スタイル) が処理されないようです。

これは、ページが機能しない場合に読み込まれるリソースです。Primefaces が提供する基本的なスタイルを除いて、すべてが機能します。

<link type="text/css" rel="stylesheet" href="http://.../theme.css" />
<link type="text/css" rel="stylesheet" href="http://.../primefaces.css" />
<link type="text/css" rel="stylesheet" href="http://.../main04.css" />
<link type="text/css" rel="stylesheet" href="http://.../main_compact.css" />
<link type="text/css" rel="stylesheet" href="http://.../ironmanCompact.css" />
<script type="text/javascript" src="http://.../jquery.js"></script>
<script type="text/javascript" src="http://.../primefaces.js"></script>
<script type="text/javascript" src="http://.../idlemonitor.js"></script>
<script type="text/javascript" src="http://.../jquery-plugins.js"></script>
<script type="text/javascript" src="http://.../jsf.js"></script>
<script type="text/javascript" src="http://.../jquery.ba-postmessage.js"></script>
<script type="text/javascript" src="http://.../tracker.js"></script>
<script type="text/javascript" src="http://.../socialMedia.js"></script>

Primefaces スタイルを CDN から削除することで、次の生成された HTML が完全に機能し、ページが適切に生成されます。

<link type="text/css" rel="stylesheet" href="/myapp/javax.faces.resource/theme.css.xhtml?ln=primefaces-smoothness" />
<link type="text/css" rel="stylesheet" href="/myapp/javax.faces.resource/primefaces.css.xhtml?ln=primefaces" />
<link type="text/css" rel="stylesheet" href="http://.../main04.css" />
<link type="text/css" rel="stylesheet" href="http://.../main_compact.css" />
<link type="text/css" rel="stylesheet" href="http://.../ironmanCompact.css" />
<script type="text/javascript" src="http://.../jquery.js"></script>
<script type="text/javascript" src="http://.../primefaces.js"></script>
<script type="text/javascript" src="http://.../idlemonitor.js"></script>
<script type="text/javascript" src="http://.../jquery-plugins.js"></script>
<script type="text/javascript" src="http://.../jsf.js"></script>
<script type="text/javascript" src="http://.../jquery.ba-postmessage.js"></script>
<script type="text/javascript" src="http://.../tracker.js"></script>
<script type="text/javascript" src="http://.../socialMedia.js"></script>
4

1 に答える 1

0

jsf リソース ルックアップを従来の css ルックアップに置き換えるだけです。
私が自分のテーマを外部化したとき、これは私のアイデアの 2 つの大量置換に過ぎませんでした。

それ以外の:

background:url("#{resource['primefaces:colorpicker/images/colorpicker_select.gif']}");

使用する:

background:url("images/colorpicker_select.gif");

または、変更されたリソースとマッピングをここからダウンロードします:
http://forum.primefaces.org/viewtopic.php?t=38421

于 2014-06-04T23:57:07.403 に答える