Как я могу служить статическим ресурсам из-за пределов войны на WildFly
Возможно, я ошибаюсь, но, насколько мне известно, в WildFly должно быть возможно следующее:
Должно быть возможно поместить ссылку в мои представления JSF (то есть файлы xhtml) на ресурс (файл pdf, изображение, другой файл xhtml), который уже находится на сервере WildFly.
Я могу сделать то же самое в php и сервере apache.
Где мне нужно будет размещать эти ресурсы и как я могу получить к ним доступ из своих представлений? E. g. поместите ссылку в представление в файл 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-listing" как false, тогда запросы будут перенаправлены как правильно отображаемый файл.