1

Rails 2.3 アプリでは、人が読めるサイトマップ ページを作成SitemapControllerするsitemapアクションと、ルート ファイル内のそのページへのルートがあります。public フォルダーにはsitemap.xml、検索エンジン用のファイルがあります。問題は、http://mysite/sitemapがサービスを提供していsitemap.xmlて、コントローラーにルーティングしていないことです。削除するsitemap.xmlと、コントローラーに正常にルーティングされます。

他のいくつかの非常によく似たサイトでは、まったく同じ配置になっていますが、それらのサイトでは、Rails がコントローラーにルーティングされるのを妨げsitemap.xmlません。これらのサイトでは、予想どおり、静的ファイルにhttp://mysite/sitemapルーティングしSitemapController#sitemapて提供します。http://mysite/sitemap.xmlそれでも、この問題を引き起こしている可能性のある違いを発見できませんでした。

誰がこれを引き起こしているのか、またはどのようにデバッグするのかを提案できますか?

4

2 に答える 2

2

あなたは次のようなことをすることができます:

class SiteMapController
  def sitemap
    respond_to do |format|
      format.xml { render :file => "/any/path/you/want/to/your/sitemap.xml" }
      # you can then add other formats, like html, for a more human-readable response
    end
  end

/publicのxmlを削除します。

詳細: http: //apidock.com/rails/ActionController/MimeResponds/respond_to

于 2011-09-09T17:28:05.953 に答える
2

これはおそらく、アプリケーションをホストしている方法の関数です。さまざまな Web サーバー環境には、これに影響を与える可能性のあるデフォルトがあります。たとえば、Apache はアプリケーションへの呼び出しよりも高い優先度で静的ファイルを提供する傾向がありますが、Passenger などを使用している場合は、静的ファイルをまったく提供しないように構成できます。

これを変更する方法は、使用している Web サーバー ソフトウェアに大きく依存します。

于 2011-09-09T16:32:06.623 に答える