如何在 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,则请求将被重定向为正确显示的文件。
我可能是错的,但据我了解,在 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,则请求将被重定向为正确显示的文件。