Как я могу обслуживать статические ресурсы вне войны на WildFly
Я могу ошибаться, но, насколько я понимаю, в WildFly должно быть возможно следующее:
Должна быть возможность поместить ссылку в мои представления JSF (т.е. файлы xhtml) на ресурс (pdf, изображение, другой файл xhtml), который уже находится на сервере WildFly.
Я могу сделать то же самое в php и на сервере apache.
Где мне нужно разместить эти ресурсы и как я могу получить к ним доступ из своих представлений? Например поместите ссылку в представлении на файл 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>
ссылка в представлении JSF
<h:outputLink value="http://localhost:8181/content">KLICK</h:outputLink>
Когда я нажимаю на это, я получаю список каталогов, как вы сказали.
Но как я могу сделать так, чтобы index.xhtml
в каталоге, который content
указывает на отображается?? Это действительно то, чего я хочу.
content
указывает на ${jboss.home.dir}/standalone/data/unzipped
и в молнии есть index.xhtml
а также еще одна папка с более .xhtml
файлы.
в index.xhtml
есть относительные ссылки на .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>
Я хочу отобразить index.xhtml
файл в unzipped
и оттуда перейдите к другому .xhtml
файлы.
Нечто подобное должно быть возможно, не так ли?
Или как еще написать приложение, в котором пользователь может загружать HTML-файлы на сервер Java ee, а затем просматривать эти файлы?
1 ответ
Возможно, вы не захотите развертывать весь свой статический контент с вашим приложением. Это могут быть изображения, документы 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-list" как false, то запросы будут перенаправлены как правильно отображаемый файл.