2011-04-28 9 views
4

프로덕션 사이트에서 경로가 start#index 인 홈 페이지가 정의되어 있습니다.모든 XML보기 사용 안 함

예상대로 작동합니다.

이제 일부 크롤러는 /crossdomain.xml과 같은 항목을 검색하므로 start 컨트롤러가 실행되고 XML보기가 반환됩니다.

불행하게도 나는 그것에 대해와 같은 XML 뷰 또는 템플릿 또는 아무것도 정의하지 않았다, 오류 메시지 (이메일을 통해, 그래서 그것은 매우 짜증나) 생성됩니다

[Exception] start#index (ActionView::MissingTemplate) "Missing template 
start/index with {:handlers=>[:rjs, :rhtml, :builder, :rxml, :erb], 
:formats=>[:xml], :locale=>[:crossdomain, :en]} in view paths 

그래서 나는이 개 선택이있는 것 같아요 :

  • 이 응용 프로그램의 모든 XML/JSON을 비활성화하고 기본 404 페이지를 렌더링합니다.
  • 더미 XML 뷰를 만듭니다.

첫 번째 선택을 선호하지만 어떻게 할 수 있을지 확신하지 못합니다. 제안이나 우수 사례에 대한 링크를 제공해 주셔서 감사합니다.

EDIT, 요청시 출력은 rake routes입니다. 내가 추측 한 2 번째 마지막 줄에 약간의 오류가 있음을 알 수 있습니까?

  new_editor_session GET /editors/sign_in(.:format)        {:action=>"new", :controller=>"devise/sessions"} 
       editor_session POST /editors/sign_in(.:format)        {:action=>"create", :controller=>"devise/sessions"} 
     destroy_editor_session GET /editors/sign_out(.:format)        {:action=>"destroy", :controller=>"devise/sessions"} 
             /auth/:provider/callback(.:format)      {:action=>"create", :controller=>"sessions"} 
         signout  /signout(.:format)          {:action=>"destroy", :controller=>"sessions"} 
     photo_of_week_submissions GET (/:locale)/submissions/photo_of_week(.:format)   {:action=>"photo_of_week", :controller=>"submissions"} 
select_photo_of_week_submission GET (/:locale)/submissions/:id/select_photo_of_week(.:format) {:action=>"select_photo_of_week", :controller=>"submissions"} 
       accept_submission GET (/:locale)/submissions/:id/accept(.:format)    {:action=>"accept", :controller=>"submissions"} 
        submissions GET (/:locale)/submissions(.:format)       {:action=>"index", :controller=>"submissions"} 
           POST (/:locale)/submissions(.:format)       {:action=>"create", :controller=>"submissions"} 
       new_submission GET (/:locale)/submissions/new(.:format)      {:action=>"new", :controller=>"submissions"} 
       edit_submission GET (/:locale)/submissions/:id/edit(.:format)     {:action=>"edit", :controller=>"submissions"} 
        submission GET (/:locale)/submissions/:id(.:format)      {:action=>"show", :controller=>"submissions"} 
           PUT (/:locale)/submissions/:id(.:format)      {:action=>"update", :controller=>"submissions"} 
           DELETE (/:locale)/submissions/:id(.:format)      {:action=>"destroy", :controller=>"submissions"} 
          login  (/:locale)/login(.:format)        {:to=>#<Proc:[email protected]/Library/Ruby/Gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/routing/mapper.rb:366>} 
         design  (/:locale)/design(.:format)        {:action=>"design", :controller=>"page"} 
         gallery  (/:locale)/gallery(.:format)        {:action=>"gallery", :controller=>"page"} 
         features  (/:locale)/features(.:format)        {:action=>"features", :controller=>"page"} 
        competition  (/:locale)/competition(.:format)       {:action=>"index", :controller=>"competition"} 
       facebook_albums  (/:locale)/facebook-albums(.:format)      {:action=>"facebook_albums", :controller=>"competition"} 
       facebook_photos  (/:locale)/facebook-photos(.:format)      {:action=>"facebook_photos", :controller=>"competition"} 
       facebook_upload  (/:locale)/facebook-upload(.:format)      {:action=>"facebook_upload", :controller=>"competition"} 
          root  (/:locale)(.:format)          {:action=>"index", :controller=>"start"} 
          root  /(.:format)            {:action=>"index", :controller=>"start"} 
+0

sitemap.xml을 생성하고 크롤러가 이전에 캐싱되거나 유효하지 않은 URL이 아닌 올바른 URL을 크롤링하지 않는 이유는 무엇입니까? –

+0

routes.rb를 게시 할 수 있습니까? – thekindofme

답변

1

경로 제한 조건을 사용하여 html 만 형식으로 사용할 수 있습니다. 이것은 당신에게 당신의 첫번째 선택을 줄 것입니다.

thisthis을 살펴보십시오.

+0

그래, 그게 내가 한거야 : '범위'(/ : 로케일) ': : 로케일 =>/en | zh-CN | zh-TW/do' –

1

컨트롤러 동작의 응답 블록에는 무엇이 포함되어 있습니까? 기본 블록을 벗어났다면 :

respond_to do |format| 
    format.html { redirect_to(foobar_url) } 
    format.xml { head :ok } 
end 

그러나 아직 템플릿을 정의하지 않은 경우 오류가 발생합니다. format.xml을 제거하십시오 (또는 HTML 만 원하면 respond_to 블록을 완전히 제거 할 수 있습니다). HTML 이외의 형식에 대한 요청은 실패합니다.