Похоже, что вам нужны частичные. Вы можете разделить их на разные компоненты и частично использовать рельсы.
Например, если у вас всегда есть один и тот же верхний и нижний колонтитул, вы можете поместить их в свой файл layouts/application.html.erb
. Затем в шаблоне тела каждой страницы вы можете отображать каждый отдельный раздел с помощью частичного.
Просто создайте файл, подобный этому _seciont_1.html.erb
. Затем на соответствующей странице сделайте это с помощью <%= render partial: "section_1" %>
. Подробнее см. Эту ссылку ниже.
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials
------------------------------
| header |
------------------------------
| | |
|section_1| section_2 |
| | |
------------------------------
| footer |
------------------------------
Что касается стилей, в вашем application.css
или application.scss
файл (жить под app/assets/stylesheets/
), удалить строку *= require_tree .
. Эта строка является той, которая загружает все ваши таблицы стилей. Вместо этого выберите только те, которые вы используете на всех страницах, например. css-файл для нижнего колонтитула и заголовка.
Затем в каждом конкретном частичном файле загрузите соответствующий файл css следующим образом.
<%= stylesheet_link_tag 'section_1', media: 'all', 'data-turbolinks-track' => true %>
Сделайте то же самое для ваших файлов JS. Вы можете найти его в своем application.js
, который живет в app/assets/javascript/
. Удалите строку //= require_tree .
И используйте соответствующий файл js, используя это.
<%= javascript_include_tag 'section_1', 'data-turbolinks-track' => true %>
Благодарим за комментарий. Я новичок в веб-разработке и мало знаю об iframe, поэтому я проверю это + BEM. В принципе, у меня есть рабочий веб-сайт с отдельной страницей «как это работает», где я хочу включать верхний и нижний колонтитулы, но имею разную одностраничную раскладку, которую я приобрел в Интернете. Вот почему таблицы стилей перекрываются. –