我正在使用Spree 0.70,Rails 3.1和Ruby 1.9的網站上工作。我注意到有些頁面沒有使用<html><head></head><body></body></html>
塊。頁面呈現沒有HTML,頭部和身體元素
相反,導軌似乎自動包裹頁在<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>
特別是任何頁面?你能否提供一些步驟來重現此問題? – 2012-01-18 01:12:49
編輯該問題以包含指向破損佈局的頁面的鏈接。 – pjmorse 2012-01-18 16:14:52
沒錯,但是你怎麼到了那個階段呢?在我甚至可以開始提供解決方案之前,我需要一些步驟在本地重現此問題。 – 2012-01-18 19:19:31