0

これは私のJSFファイルヘッダーです:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:f="http://java.sun.com/jsf/core" 
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
    <title>#{txt.TXT_TITLE_LOGIN}</title>
    <link rel="stylesheet" type="text/css" href="scripts/styles.css"/>
    <link rel="shortcut icon" href="./images/favicon.ico"></link>
    <script src="./scripts/scripts.js" type="text/javascript"/>
</h:head>
<body...

ページを開くと、スタイルが読み込まれず、非常に見苦しく見えます。Firebugはこれを示しています。

<link href="scripts/styles.css" type="text/css" rel="stylesheet">
    The resource from this URL is not text: http://localhost:8080/EWC/scripts/styles.css
</link>

...しかし、ファイルは/ EWC/scriptsの場所にあります。

まったく同じヘッダーを持つ他のページを開くと、すべて問題ありません。それから私はこのページに戻ります、そしてそれも大丈夫です。しかし、ブラウザの現金をきれいにした後、このページが最初に読み込まれると、再び発生します。

何が悪かったのか?

4

1 に答える 1

0

解決しました。
問題がセッション満了時の承認リダイレクトに接続されたような継ぎ目は、JSFフォームの送信では機能せず、ページは同じままです。

次のコードはファイルリクエストをキャッチしなかったため、 (ユーザーがログインしていない場合)cssを介してログインページに転送されました。gotoLogin()

if( requestURI.startsWith(req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER) )
    chain.doFilter(request, response);
    return;
else
    gotoLogin(null, request, response);
    return;

私が追加しました

if( requestURI.endsWith("css") )
    chain.doFilter(request, response);
    return;

...そしてそれは機能します。

BalusCが言ったように、私はヘッダーで、の代わりに<h:outputStylesheet><h:outputScript>を使用する必要がありましたが、これは決して起こりません。<h:graphicImage><link><script><img>

于 2013-03-20T10:23:46.637 に答える