Я создаю сайт Meteor, проложенный с помощью Iron Router. У каждой подстраницы есть своя собственная папка, а ее собственные - Scss
. Проблема в том, что все файлы Scss
становятся доступными на каждой подстранице после компиляции.Как загрузить различные файлы Scss с помощью маршрутизированных страниц Meteor
Это легко решить путем добавления html class="homePage"
или html class="adminPage"
, то префикс стайлинга с .adminPage {...code goes here...}
, но когда дело доходит до исключающего больших файлов, например весь html5reset.scss
, предваряя все имена не является хорошим решением. Как исключить из этого списка файлы html5reset.scss
?
file structure
/homepage
> global.scss
> homePage.scss
> html5reset.scss
/404
> global.scss
> 404Page.scss
> html5reset.scss
/admin
> global.scss
> adminPage.scss
// NO HTML5 reset
/framework
> global.scss
> frameworkPage.scss
// NO HTML5 reset
И это, как я динамически устанавливать HTML имена классов:
HTML
<template name="homePage">
{{HTML_CLASS 'homePage'}}
</template>
КЛИЕНТ JS
// dynamically set html class
Handlebars.registerHelper("HTML_CLASS", function (htmlClass){
var root = document.getElementsByTagName('html')[0];
if (htmlClass) {
root.setAttribute("class", htmlClass);
} else {
alert("this page has not html class");
root.setAttribute("class", "otherPage");
}
});
Поскольку мне нужно исключить только CSS сброс этого может быть решением;). Регистрация названия страницы в качестве помощника позволяет мне определять заголовок в шаблоне, это очень полезно. –
Согласно вашему предложению, я использовал общую папку для включения файлов css/js, специфичных для маршрута, и написал для этого помощника: http://stackoverflow.com/a/30833068/3836715 –