文件出现在jsf应用程序的xhtml中的路径

时间:2012-09-05 15:05:47

标签: jsf xhtml path

在运行时找不到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>

=&GT; common.pde位于我的JSF 2.0应用程序的“Web pages”文件夹中。指定路径的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

HTML源代码中的任何相对路径(即那些不以http:///开头的)(由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,预计会出现在:{/ p>

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

canvas/common.pde中的子文件夹一样,希望它位于:

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

我认为它现在有意义吗?我猜您的具体问题是由于您的JSF页面位于子文件夹中,或者您已将FacesServlet映射到/faces/*等前缀模式而不是后缀模式(例如{{1} }}