如何在 WildFly 上从 war 外部提供静态资源

How can I serve static resources from outside a war on WildFly

我可能是错的,但据我了解,在 WildFly 中必须有以下情况:

必须可以将 link 放入我的 JSF 视图(即 xhtml 文件)到资源(pdf、图像、其他 xhtml 文件)已经在 WildFly 服务器上了。

我可以在 php 和 apache 服务器上做同样的事情。

我需要将这些资源放在哪里,如何从我的视图中访问它们?例如将 link 放在 pdf 文件的视图中,在新选项卡中打开 pdf 文件。

非常感谢提示和提示!!

编辑

standalone.xml

<server name="default-server">
    <http-listener name="default" socket-binding="http" max-post-size="974247881"/>
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content"/>
        <location name="/content" handler="ContentDir"/>
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    </host>
</server>
<servlet-container name="default">
    <jsp-config/>
    <websockets/>
</servlet-container>
<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
    <file name="ContentDir" path="${jboss.home.dir}/standalone/data/unzipped" directory-listing="true"/> 
</handlers>

link 在 JSF 视图中

<h:outputLink value="http://localhost:8181/content">KLICK</h:outputLink>

当我点击它时,我得到了目录列表,正如你所说的。

但是怎样才能让content指向的目录下的index.xhtml显示出来呢??这正是我想要的。

content 指向 ${jboss.home.dir}/standalone/data/unzipped 并且在解压缩后有一个 index.xhtml 以及另一个包含更多 .xhtml 个文件的文件夹。

index.xhtml 文件夹中有相对 link 到 .xhmtl 文件:

<ul>
    <li><a href="t/rt.html">hg</a></li>
    <li><a href="t/tert.html">jghj</a></li>
    <li><a href="t/gf.html">jghj</a></li>
    <li><a href="t/hg.html">jghj</a></li>
    <li><a href="t/hgfh.html">jghj</a></li>
    <li><a href="t/hfgh.html">jhgj</a></li>
    <li><a href="t/hfgh.html">jhgj</a></li>
    <li><a href="t/hg.html">jghj</a></li>
    <li><a href="t/hghh.html">jghj</a></li>
</ul>

我想在 unzipped 中显示 index.xhtml 文件,然后从那里导航到其他 .xhtml 文件。

类似的事情一定是可能的,不是吗??

或者您还可以如何编写一个应用程序,用户可以将 html 文件上传到 Java ee 服务器,然后看到这些文件显示出来?

您可能不想在应用程序中部署所有静态内容。这些可能是图像、PDF 文档或其他类型的文件。您应该配置 Undertow 以解决此问题。下面的示例向您展示了如何通过配置 Undertow 子系统来执行此操作。

<server name="default-server">
    <http-listener name="default" socket-binding="http"/>
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content"/>
        <location name="/img" handler="images"/>
    </host>
</server>
<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="false"/>
    <file name="images" path="/var/images" directory-listing="true"/>
</handlers>

有了这个附加配置,对 www.sampledomain.com/contextroot/img 的任何资源请求都将被重定向到硬盘上的文件系统。如果您将 "directory-listing" 属性标记为 false,则请求将被重定向为正确显示的文件。