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