Как я могу обслуживать статические ресурсы вне войны на 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, то запросы будут перенаправлены как правильно отображаемый файл.

Другие вопросы по тегам