Конфигурация Tomcat для обслуживания статического контента напрямую для Orbeon - PullRequest
2 голосов
/ 13 октября 2011

Ссылка на конфигурацию Tomcat в orbeon рассказывает о том, как настроить tomcat на статическое содержимое сервера, например изображения, java-script и css, непосредственно на клиентский компьютер и удалить ненужную загрузку из движка Orbeon.

  • Описание здесь не содержит никаких подробностей, и поэтому я не являюсь возможность сделать конфигурацию.
  • Я также хотел бы знать, сработает ли внешний интерфейс для css и java-скрипта в orbeon 3.9, так как orbeon объединяет эти файлы в один файл.

Я использую Tomcat 6.x и Orbeon 3.9.

Отредактировано

структура папок с изображениями orbeon d:\Server\apache-tomcat\webapps\orbeon3.9\WEB-INF\resources\images\forms_img

URL-адрес изображения, созданный orbeon http://localhost:8080/orbeon3.9/images/forms_img/print.gif

Код Orbeon для URL изображения <xhtml:img src="/images/forms_img/print.gif" />

Если кто-то успешно настроил его. Пожалуйста, оставьте детали.

Заранее спасибо

1 Ответ

2 голосов
/ 14 октября 2011

Если вы не можете переместить папку resources и не должны использовать какие-либо специальные настройки Tomcat, используйте Tuckey Url Rewrite Filter .Следующее правило работает для меня, поэтому оно может обслуживать содержимое из папки WEB-INF:

<urlrewrite>
    <rule>
        <from>^/images/(.*)$</from>
        <to type="forward">/WEB-INF/resources/images/$1</to>
    </rule>
</urlrewrite>

Tuckey также может обрабатывать файлы .htaccess, но я еще не использовал его.Возможно, связанный .htaccess хорошо с ним работает.


Другое решение:

Я полагаю, вы настроили сервлет orbeon в web.xml с шаблоном URL /согласно документации :

<servlet>
    <servlet-name>orbeon-main-servlet</servlet-name>
    <servlet-class>
        org.orbeon.oxf.servlet.OrbeonServletDelegate
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>orbeon-main-servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

В Tomcat DefaultServlet служит для статического содержимого , установите его для статического содержимого:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>
        org.apache.catalina.servlets.DefaultServlet
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    ...
</servlet-mapping>

Затем заполните список url-pattern.Связанная конфигурация (которая фактически указывает на конфигурацию HTTP-сервера Apache, а не на конфигурацию Tomcat) является хорошей отправной точкой.

Обратите внимание, что эти шаблоны не являются регулярными регулярными выражениями.Проверьте Спецификация Java-сервлета 12.2 Спецификация сопоставлений для синтаксиса ( приведен пример ).


На основе ваших правокservlet-mapping должно выглядеть примерно так:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/images/forms_img/*</url-pattern>
</servlet-mapping>

И вам нужно переместить папку WEB-INF/resources/images/forms_img в /images/forms_img в вашем веб-приложении (чтобы она была на d:\Server\apache-tomcat\webapps\orbeon3.9\images\forms_img), так как файлы подWEB-INF недоступно.

...