body要素なしでレンダリング3.1レール、とRuby 1.9。私はいくつかのページが<html><head></head><body></body></html>
ブロックなしでレンダリングされていることに気付きました。ページは、HTML、頭、と私はシュプレー0.70を使用してサイトに取り組んでいます
代わりに、Railsは<html><body></body></html>
ブロックに自動的にページをラッピングしているように見えます。つまり、頭にあることを意図したコード(CSSが含まれ、ページtitle
ブロックなど)が本体の中に現れます。これらの要素がないため、ヘッドタグやボディタグ(CSSなど)の属性に依存して動作しません。
はっきりと私のレイアウトは、パーシャルとすべてのレンダリングされているが、これらのトップレベルの要素は無視されたり上書きされているので、これは私を困惑。
「一部のページ」と言うと、管理ページでは発生しないことが確認されており、アプリケーションに限定されたページでは発生しません(つまり、spree_application.html.erb
レイアウトは使用しません)。コントローラはSpree::BaseController
をサブクラス化しません。)私は自分のアプリケーションにコピーすることによりspree_application.html.erb
レイアウトを上書きしている(私は)選択の余地がなかったし、この問題を持つすべてのページには、そのレイアウトを使用しています。それが要因かもしれませんか? (Here is a page with the broken layout.)
は、どのように私は私のルート要素を取り戻すことができますか?
ETA:ここにapp/views/layouts/spree_application.html.erb
で私のアプリでは、私が持っているファイルです。これは、問題を示すすべてのページに共通するレイアウトです。 div構造は、Spreeが提供するレイアウトとは微妙に異なることに注意してください。これは、私がDefaceオーバーライドを使用するのではなく、レイアウトを置き換える必要がある理由です。
<!DOCTYPE HTML>
<%# Overrides the Spree default template %>
<html>
<head data-hook="inside_head">
<%= render 'shared/head' %>
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/stylesheets/ie.css" />
<![endif]-->
</head>
<body class="<%= body_class %>" id="<%= @body_id || 'default' %>" data-hook="body">
<div id="page-scroll" data-hook>
<div class='header-wrapper'></div>
<div id="header" data-hook>
<ul id="nav-bar" data-hook>
<%= render 'shared/nav_bar' %>
</ul>
<%= render 'shared/logo' %>
</div>
<div id="wrapper" data-hook>
<%= render 'shared/content' %>
</div>
</div>
<%= render 'shared/footer' %>
<%= render 'shared/google_analytics' %>
</body>
</html>
特に内の任意のページ?この問題を再現するためのいくつかの手順を提示できますか? –
レイアウトを壊したページへのリンクを含めるように質問を編集しました。 – pjmorse
さて、あなたはどのようにそのステージに入っていますか?ソリューションを提供する前に、この問題をローカルで再現するためのいくつかの手順が必要です。 –