какой путь к файлу должен отображаться в xhtml приложения jsf

common.pde в теге canvas не найден во время выполнения:

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 находится в папке «Веб-страницы» моего приложения JSF 2.0. Каков правильный способ указать его путь?


person seinecle    schedule 05.09.2012    source источник


Ответы (1)


Любые относительные пути (то есть те, которые не начинаются с http:// или /) в исходном коде HTML (сгенерированном JSF) относятся к текущему 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

Если перейти на одну папку вверх по ../, как в ../common.pde, можно ожидать, что она будет в:

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

Находясь в подпапке, как в canvas/common.pde, можно ожидать, что она будет в:

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

Я думаю, теперь это имеет смысл? Я предполагаю, что ваша конкретная проблема вызвана тем, что ваша страница JSF находится в подпапке или что вы сопоставили FacesServlet с шаблоном префикса, таким как /faces/*, вместо шаблона суффикса, такого как *.xhtml.

person BalusC    schedule 05.09.2012