Как правильно сопоставить внешнюю папку с файлом Tomcat server.xml, используя контекстный путь?

Я не настолько в конфигурации Tomcat, и у меня есть следующие сомнения:

Файл конфигурации server.xml моего Tomcat 7 содержит это раздел:

 <Host name="localhost"  appBase="webapps"
        unpackWARs="true"
        autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">


    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

    <Context path="/my-project/images/" docBase="/data/myproject/cache/images/" />
  </Host>

Мое главное сомнение связано с этой последней строкой:

<Context path="/my-project/images/" docBase="/data/myproject/cache/images/" />

/ data / myproject / cache / images / содержит другую папку, содержащую изображения, используемые моим проектом Java EE.

Так что именно означает эта линия?

Я думаю, что это означает, что он отображает папку /my-project/images/ во внешнюю папку (внешнюю по отношению к проекту) / data / myproject / cache / images /

Это рассуждение правильно?

Моя проблема в том, что мое приложение запускается, но эти изображения не отображаются.

Таким образом, точная ситуация следующая: эти изображения не сохраняются непосредственно в папке / data / myproject / cache / images / external, а помещаются в подкаталог этой папки, что-то вроде этого:

**/data/myproject/cache/images/subdir1/1.png**
**/data/myproject/cache/images/subdir1/2.png**
**/data/myproject/cache/images/subdir1/3.png**

**/data/myproject/cache/images/subdir2/4.png**
**/data/myproject/cache/images/subdir2/5.png**
**/data/myproject/cache/images/subdir2/6.png**

Поэтому я думаю, что, возможно, мне придется изменить эту строку:

<Context path="/my-project/images/" docBase="/data/myproject/cache/images/" />

таким образом, что если вызывать что-то вроде /my-project/images/ subdir1, оно отображается в / data / myproject / cache / images / subdir1 /

Если это может быть моей проблемой (я абсолютно не уверен в этом), как я могу указать это конкретное поведение?

1 ответ

путь - это URL доступа к ресурсу в вашем проекте, docBase - реальный путь к папке

<Context path="/my-project/images/" docBase="/data/myproject/cache/images/" />

если ваши изображения здесь: "/data/myproject/cache/images/subdir1"и вы хотите получить доступ к этим изображениям по URL в браузере. попробуй это
1. найдите папку в вашем коте.

conf/Catalina/localhost

2. создать файл

*.xml

3. добавить этот код в него

<?xml version="1.0" encoding="UTF-8" ?> 
<Context docBase="/data/myproject/cache/images/subdir1" path="/subdir1" debug="0" reloadable="true" />

4. сохранить путь к изображению следующим образом:

http://localhost:8080/subdir1/1.png

5. перезапустите сервер Tomcat, чтобы включить и загрузить "*.xml", который вы отредактировали. Попробуйте URL в шаге 4. Можете ли вы увидеть изображение? если нет, скажи мне, какую ошибку ты получаешь. Я помогу тебе разобраться.

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