Я работаю над сайтом, используя Spree 0.70, Rails 3.1 и Ruby 1.9.Я заметил, что некоторые страницы отображаются без их блоков <html><head></head><body></body></html>
.
Вместо этого Rails, по-видимому, автоматически упаковывает страницу в блок <html><body></body></html>
, что означает, что отображается любой код, предназначенный для размещения в заголовке (т. Е. CSS включает в себя блок страницы title
и т. Д.).внутри тела, и все, что зависит от атрибутов тегов head или body (например, CSS), не работает, потому что эти элементы отсутствуют.
Это озадачивает меня, потому что ясно, что мой макет визуализируется, частично и все остальное, но эти элементы верхнего уровня игнорируются или переопределяются.
Когда я говорю "некоторые страницы", я подтвердилчто это не происходит на страницах администратора, и это не происходит на страницах, ограниченных моим приложением (то есть они не используют макет spree_application.html.erb
и их контроллер не подкласс Spree::BaseController
.) Я переопределилмакет spree_application.html.erb
, сделав копию в моем приложении (у меня не было выбора), и все страницы с этой проблемой используют этот макет.Может ли это быть фактором?( Вот страница с разбитым макетом. )
Как я могу вернуть свои корневые элементы?
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>