2013-04-30 1 views
0

Rails 앱에서 부분적으로 콘텐츠를 사용할 때 HTML 문서 트리가 손상되고 head 요소가 body 요소 위로 넘쳐납니다.레일스 부분 분할 문서 트리 사용?

응용 프로그램/뷰/레이아웃/application.html.erb :

<!doctype html> 
<html> 
    <head> 
    <%= render :partial => 'shared/head' %> 
    </head> 
    <body id="test-id"> 
    <h1>Hello World</h1> 
    </body> 
</html> 

응용 프로그램 /보기/공유/head.html.erb 난 아주 간단한 예를 들어이 내려 삶은 것 :

<title>Test Title</title> 

결과

<!DOCTYPE html> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
    <title>Test Title</title> 
    <h1>Hello World</h1> 
    </body> 
</html> 

id 속성은 없어졌으며 요소는 있어야하는 위치에 있지 않습니다.

아무도 이처럼 보이지 않거나 디버깅을위한 도움말을 제공 할 수 있습니까?

나는 실행 해요 :

  • OSX 나는했습니다 10.8.3
  • 루비 1.9.3-p392
  • 레일 3.2.11 /에 WEBrick
  • 슈 프레 1.1.4 (하지만 Spree가 영향을 줄 수있는 모든 것을 제거했습니다.)
+0

Firebug와 같은 HTML DOM 검사기를 보거나 Chrome에서 요소를 마우스 오른쪽 버튼으로 클릭/검사하거나 원시 소스를보고 있습니까? 그 검사원은 당신을 위해 포맷을 시도하고, 파싱에 대해 무언가가 있다면 그것을 망칠 수 있습니다. 원시 소스 (오른쪽 클릭 ->보기 페이지 소스)를 보면 브라우저가 보는 것을 정확히 볼 수 있으며, 이는 문제를 즉시 해결할 수 있습니다. –

+0

@ScottS 위의 'render'아래에있는 것은 브라우저가 얻고있는 것입니다. 그러나 공백을 수정하여보다 쉽게 ​​읽을 수 있도록했습니다. – Thomas

+0

흠. 레일을 파싱하고 레이아웃의 출력을 변경하는 것을 한번도 본 적이 없지만, 3.2를 거의 사용하지 않았습니다. 내가 주목하는 한 가지는 레이아웃에 '<%= yield %>'문이 없다는 것입니다. 나는 이것이 문제가 될 것이라고 기대하지는 않지만 예기치 않은 행동을 일으킬 수 있습니다. 임베디드 코드를 제거하고 직선 HTML을 출력 해보고 어떻게 작동하는지보십시오. –

답변

0

밖으로 나옵니다. 내 <head>을 망가뜨린 오류를 일으킨 배경에서 Deface가 실행 중입니다.

누군가가 Spree를 실행 중이고 템플리트에 이상한 문제가있는 경우 레일스 로그에서 Deface 오류를 먼저 조사하고 libxml 버전을 확인하십시오. 2.8 이상인 경우 다운 그레이드해야 할 수 있습니다. 더 많은 정보 here.