5

これが悪い質問である場合は申し訳ありませんが、私は Windows を使用しており、docBase複数のフォルダーがある Tomcat を介して webapp を実行する方法があるかどうかを確認しています。

もう少し背景として、Web コンテンツが個別のフォルダーに分割されるように Eclipse プロジェクトをセットアップしました。1 つのフォルダーは SDK が提供するものを表し、1 つは SDK パッチを含むフォルダー、3 つ目はプロジェクト固有のコンポーネントです。最後の 2 つのフォルダーのいずれかに、最初の 2 つのアイテムを「消去」するサブフォルダー/ファイルを含めることができます。

行っている変更を確認するためにビルド/デプロイする必要がないように、コンテキスト ファイルが開発環境を指すようにしたいと考えています。これは可能ですか?

その他の注意事項:

  • を介してシンボリックリンクを使用することを考えましmklinkたが、シンプルさがそこにある場合、複雑さを作りたくありませんでした。
  • これはローカルで実行するためだけのものであるため、簡単なハッキングが許可されます。実際の環境にデプロイされる WAR を作成すると、ANT スクリプトは単一の Web ルートを作成します。
4

2 に答える 2

3

Tomcat はこれを行うことができます。少し追加の構成が必要なだけです。

追加のファイルを (順番に) 検索するリストを指定できるVirtualDirContextを探しています。extraResourcePathsこれを使用して、静的リソース、JSP、JAR ファイルのディレクトリなどをマージできます。

パスを追加するたびに、すべてのファイル検索に時間がかかる可能性があることに注意してください。特に、ファイルがまったく見つからない場合はなおさらです。

于 2013-07-25T14:41:37.523 に答える
3

私はこのように使用します:

    <Context docBase="jquery"                path="/js/jquery" />
    <Context docBase="foobar/www/javascript" path="/js" />
    <Context docBase="foobar/www/css"        path="/css" />
    <Context docBase="foobar"                path="/" />

具体的なコンテキストにとって重要なのはパス属性です。リクエストは上から下に処理されます。

したがって、リクエスト/css/default.cssは 3 番目のコンテキストからのみ処理されます。

異なる順序は、異なるコンテキストをキャッチする場合があります。

これは間違っています:

    <Context docBase="foobar"                path="/" />
    <Context docBase="jquery"                path="/js/jquery" />
    <Context docBase="foobar/www/javascript" path="/js" />
    <Context docBase="foobar/www/css"        path="/css" />

/css/default.css4 番目のコンテキストではなく、最初のコンテキストでキャッチされるためです。

編集 2013-08-10: (回答の作成者によるものではありません) 上記の手法は機能しますが、その多くは実際には正しくないことに注意することが重要です。詳細はコメントをご覧ください。

于 2013-07-22T13:42:47.417 に答える