Я не эксперт по Ruby.Я дам совет, основываясь на моем опыте, который может отличаться от реальной хорошей практики.
1-я вещь: Если вы пишете Sass, я понял, что хорошей практикой является показывать все препроцессоры вимя файлаЭто работает так, что самый дальний препроцессор из имени файла будет интерпретироваться первым.Например: файл whatever.js.coffee.erb
будет сначала интерпретироваться интерпретатором Ruby, затем интерпретатором сценариев кофе, а затем в конечном файле будет использоваться некоторый javascript.
При локальной компиляции ресурсов я заметил, что мне нужно было явно указывать имена.Таким образом, переименование application.scss
в application.css.scss
является безвредной и хорошей практикой.
(хотя это может и не быть источником вашей проблемы)
2-я вещь :предоставленные вами биты не объясняют, почему стили custom.css
не отображаются в вашем представлении
Почему?
Поскольку ваш код "выглядит" хорошо для меня.
Что он делает?
Что ж, в вашем приложении Rails есть таблицы стилей, расположенные в app / assets / stylesheets.Хотя эти таблицы стилей не будут автоматически отображаться на ваших веб-страницах.
Чтобы добавить эти таблицы стилей на свои страницы, существует помощник по имени stylesheet_link_tag
.stylesheet_link_tag
просто добавит ссылку на файл таблицы стилей на вашей HTML-странице.Это должно быть помещено между <head></head>
HTML-тегами.
В Rails, хотя вы не воссоздаете теги <head></head>
для каждой страницы.Все представления inerhit из глобального шаблона макета под названием application.html.erb
(вы знаете об этом, вы скопировали контент), и это место, где вы можете глобально обрабатывать вложения таблиц стилей.
В вашем уроке наставник добавил одну таблицу стилей в файл application.html.erb
: application
(Rails будет понимать ее как application.css
или application.css.scss
... и попытаться найти ее впапка app / assets / stylesheets).Все веб-страницы вашего сайта будут иметь эту таблицу стилей.
Но затем вы говорите мне: «Как я могу иметь один файл для всего моего приложения ... У меня много контроллеров и представлений?»
Вот где это становится интересным: естьнесколько трюков для настройки этой таблицы стилей.В основном @import
и *= require
.Оба позволяют импортировать другие таблицы стилей в текущую таблицу стилей.(требуется Ruby, импорт - Sass)
/*
*= require custom.css.scss
*/
@import "custom";
Приведенный выше код будет выполнять то же самое: объединить файл custom.css.scss
в application.css
.Если вы добавите больше файлов, они тоже будут агрегированы.
некоторые особенности:
*= require_tree.
будет импортировать каждую таблицу стилей в папку app / assets / stylesheets.Это очень удобно, если вы хотите создать очень большой CSS-файл, который можно использовать на каждой странице вашего сайта.
*= require_self
будет обрабатывать то, что следует за комментируемой частью.в основном это говорит: «не обращай внимания на стили, просто делай необходимые вещи»
Хорошо, теперь, что вы можете сделать:
- переименовать
application.scss
в application.css.scss
- восстановить
require_self
: я не уверен, что это действительно повлияет на @imports, но иметь его не вредно.
Если это не решит вашу проблему: добавьте пользовательский файл втребование:
/*
*= require custom.css.scss
*/
Не должно произойти сбой (не забудьте переименовать пользовательский, как указано выше)
Последнее решение: восстановить require tree.
Он должен собрать все файлы таблиц стилей и объединитьих в application.css
(здесь я пишу application.css
, потому что я говорю о таблице стилей на последней веб-странице, а не о файле в вашем приложении Rails) (также в процессе разработки ваш application.css
файл может не выглядеть aggregated
, но он будет впроизводство)