4時間を費やした後、私はそれを機能させます!ただし、新しい Spring 3.x シリーズに基づくソリューションであるため、一般的なケースではありません。
一般的なケースの解決策については、有名なブログ記事http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.htmlのように、独自のサーブレットを実装する必要があります。
コードを書くのは好きではありませんが、ビルド済みのコンポーネントを構成するのは好きです。
まず、すべての URL のリクエスト ハンドラを次のように変更しますorg.springframework.web.servlet.DispatcherServlet
。
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
私が持っている前に:
<url-pattern>*.htm</url-pattern>
<url-pattern>*.xml</url-pattern>
そのため*.js
、デフォルトのコンテナー (JBoss) サーブレットによって管理されるファイルと*.css
、*.png
それ以上のオプションは効果がありません...
次に、Spring 3.0 の機能<mvc:resources>
( xmlns:mvc="http://www.springframework.org/schema/mvc"
) とfile:
リソース タイプを使用します。
<mvc:resources mapping="/css/**" location="file:/home/user/devel/proj/src/main/webapp/css/"/>
<mvc:resources mapping="/images/**" location="file:/home/user/devel/proj/src/main/webapp/images/"/>
<mvc:resources mapping="/js/**" location="file:/home/user/devel/proj/src/main/webapp/js/"/>
ブラウザーで Web ページを保存.js
または.css
ファイルして更新するたびに、新しいコンテンツが表示されます。
静的コンテンツのデプロイ時間を 2 分から 1 秒に短縮!!!
更新Tomcat 7に切り替えた後、コンテキストを構成します/opt/apache-tomcat-7.0.40/conf/Catalina/localhost/CTXNAME.xml
:
<Context docBase="/home/user/devel/proj-dev/src/main/webapp"
reloadable="true">
<Resources className="org.apache.naming.resources.VirtualDirContext"
extraResourcePaths="/WEB-INF/classes=/home/user/devel/proj-dev/target/classes,/WEB-INF/lib=/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
virtualClasspath="/home/user/devel/proj-dev/target/classes;/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
<JarScanner scanAllDirectories="true"/>
</Context>
によると:
JS/CSS/JSP ファイルF5
がブラウザで更新されるようになりました。new .class
invokeを使用するためmvn compile
。呼び出しをブートストラップするにはmvn package