0

我正在创建一个使用 Iron Router 路由的 Meteor 站点。每个子页面都有自己的文件夹和自己的Scss文件。问题是Scss编译后所有文件在每个子页面上都可用。

html class="homePage"通过添加or 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" );
  }
});
4

1 回答 1

1

有一种更好的方法可以使用 Iron-router 将类放在 html 标签上:

流星体中的 CSS 类

在您的客户端文件夹中排除 css 是不可能的,但是通过将它放在您的公用文件夹中来实现它是一种肮脏的方法:

从 Meteor 的特定路线中排除引导程序

于 2015-06-10T19:08:06.417 回答