5

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.txtsitemap.xmlファイルをどこに置くかについて混乱しています。C:\Program Files\Apache Software Foundation\Tomcat 7.0\mywebapp\MyApplication に入れても表示されません。

念のため、 の中に入れてみましたC:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT。しかし、何も機能しません。私はまだ404が見つかりません。どなたかご指導お願いします。

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>
4

3 に答える 3

6

入れるrobots.txtだけTomcat_DIR/webapps/ROOT/

于 2013-04-18T07:52:32.010 に答える
3

コンテキストディレクトリにある必要があります

mywebapp\MyApplication

web-inf ディレクトリ、index.html などがある場所だけです。

アップデート:

私たちの議論によると、すべての URL は Spring MVC DelegatingFilterProxy によって処理されるため、このフィルターから *.txt を除外する必要があります。おそらく、DelegatingFilterProxy を拡張し、web.xml でそのフィルターを構成することによって可能です。

解決策: Spring MVC でこのハックを使用して静的コンテンツをサーバー化できます。

<mvc:resources mapping="/robots.txt" location="/robots.txt" order="0"/>

頭痛のトンを救った。:) 他の人が恩恵を受けるためにそれを書いてください。

于 2012-12-15T10:11:17.367 に答える
0

私は同じ問題を抱えています.robots.txtを置く場所を測定したり、robots.txtへの<mvc:resources mapping="/robots.txt" location="/robots.txt" order="0"/>各リクエストを構成したりして404ステータスを返しませんでした。

ここでの問題は、ルーティングを持つクライアント側で Spring MVC と Backbone.js MVC の両方を使用していることです。<url-pattern></url-pattern>そのため、両方の MVC を提供するように調整できませんでした。

ここで見つけた唯一の迅速で醜い解決策は、/robots.txt へのリクエストを Spring MVC のリクエストとして処理することです。

@RequestMapping(value = "/robots.txt", produces = {"text/plain"}, method = RequestMethod.GET)
@ResponseBody
public String getRobotsTxt() {
    return "User-agent: *" + 
   "\n" + "Allow: /js/views/*.js" + 
   "\n" + "Allow: /js/*.js" + 
   "\n" + "Allow: /css/*.css" + 
   "\n" + "Allow: /css/*.png" + 
   "\n" + "Disallow: /cgi-bin" + 
   "\n" + "Sitemap: http://blabla/sitemap.xml";
}
于 2015-08-27T18:22:16.577 に答える