0

実行時にcanvasタグのcommon.pdeが見つかりません:

xhtml:

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>test</title>
    </h:head>
    <h:body>
        <h:outputScript library="js" name="processing-1.4.1.js" />
        <canvas data-processing-sources="common.pde"></canvas>

    </h:body>
</html>

=> common.pdeは、JSF2.0アプリケーションの「Webページ」フォルダーにあります。そのパスを指定する正しい方法は何ですか?

4

1 に答える 1

1

( JSFによって生成された)HTMLソースコード内の相対パス(つまり、http://またはで始まらないパス)は、現在の要求URI(ブラウザーのアドレスバーに表示される)からの相対パスです。/

したがって、現在のリクエストURIが次の場合:

http://example.com/contextname/somefolder/page.xhtml

次に、そこにあるcommon.pde参照は、次の場所にあることを期待しています。

http://example.com/contextname/somefolder/common.pde

/次のようにドメインルートに移動するリーディング/common.pde

http://example.com/common.pde

のように1つのフォルダを上に移動すると、次の場所にあることが期待されます../../common.pde

http://example.com/contextname/common.pde

のようにサブフォルダにあると、次のcanvas/common.pdeようになります。

http://example.com/contextname/somefolder/canvas/common.pde

今は理にかなっていると思いますか?具体的な問題は、JSFページがサブフォルダーにあるか、などのサフィックスパターンの代わりにFacesServletなどのプレフィックスパターンにマップされていることが原因であると思います。/faces/**.xhtml

于 2012-09-05T17:09:41.830 に答える