我正在使用Tomcat 7托管我的应用程序。我已经使用了tomcat-home \ conf \ Catalina \ localhost下的ROOT.xml文件
<Context docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0\mywebapp\MyApplication" path="" reloadable="true" />
这是在根上下文中加载我的webapp。
但是,现在我对将robots.txt和sitemap.xml文件放在何处感到困惑。当我放入C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ mywebapp \ MyApplication下时,它没有显示。
robots.txt
sitemap.xml
我也尝试将其放在里面C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT,以防万一。但是没有任何效果。我仍然找不到404。任何人都可以指导。
C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
ps我的Web应用程序运行良好。只是我的robots.txt文件无法访问。
我的web.xml文件:
<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
它应该在您的上下文目录中
mywebapp\MyApplication
只是您将拥有web-inf目录,index.html等的位置。
更新:
根据我们的讨论,所有网址均由Spring MVC DelegatingFilterProxy处理,因此您需要以某种方式从此过滤器中排除* .txt,方法可能是扩展DelegatingFilterProxy并在web.xml中配置该过滤器
解决方案:我可以通过Spring MVC中的此hack服务静态内容:
<mvc:resources mapping="/robots.txt" location="/robots.txt" order="0"/>
救了我很多头。:)编写它以供其他人受益。