私は、すべてのアプリで使用されるjs
およびcss
ファイルの大部分が含まれるExtJSフレームワークを使用しています。いくつかのWebアプリケーション(異なるwar
ファイル)間でこれらを共有するつもりです。
このため、ExtJS js
とcss
をWebサーバーから直接提供したいと思います。私の場合は_Tomcat6
_で、静的ファイルの提供に使用できます- この役立つリンク 。
したがって、私はファイルを_/var/lib/Tomcat6/webapps/ROOT/extjs/
_の下に置きます。そのディレクトリの直下にある静的ファイルは正しく提供されます。 _/extjs/ext.js
_は、_/var/lib/Tomcat6/webapps/ROOT/extjs/ext.js
_でファイルを正しく提供します。
ただし、_/extjs/welcome/css/welcome.css
_でファイルを提供する_/var/lib/Tomcat6/webapps/ROOT/extjs/welcome/css/welcome.css
_などの下位ディレクトリにあるファイルは、_404
_を返します。
TL/DR
Tomcatは、最上位ディレクトリでのみ静的ファイルを提供します。階層の深いファイルに対しては、_404
_が返されます。
構成ファイルの内容:
修正済み-ソリューション:
問題は私が条項を置いていたことでした:
_<Context docBase="/path/to/extjs-static-files" path="/extjs"/>
_
tomcatの_server.xml
_ _<Engine>
_句内。 _<Host>
_タグ内に配置すると、機能し始めました。 このドキュメント を読むことは、私が間違っていたことを特定するのに非常に役立ちました。
Tomcatの外部のディレクトリに保存されている静的コンテンツを提供するRESTful Webサービスを実行しています。ディレクトリは、web.xmlのサーブレットパラメータで指定します。同様のことを行い、必要なファイルへの絶対パスを指定するだけで、Tomcatのどこかに、または好きな場所にファイルを配置できます。よろしければ、サンプルコードを投稿できます。もちろん、JavaScriptとCSSを参照する他のすべてのファイルは、それらを使用するWebアプリとは異なるURLディレクトリにあるため、変更する必要があります。たとえば、src = "restAppContextName/serve/youJavaScript.js"の場合、serveはREST Webサービスの@Pathで、以下は@PathParamです。ブラウザでは、/ serveはそれはディレクトリのように扱われるので、あるjsファイルから別のjsファイルへの相対参照は機能するはずです。