如何在 Meteor 1.0 中有条件地加载/捆绑 CSS 文件?

fuz*_*nny 5 meteor

我知道之前有人问过这个问题,但我想知道随着 1.0.0 的出现是否有所改变。

我不希望 Meteor 自动将应用程序中的每个 CSS 文件捆绑在一起。我的管理页面将具有与面向客户的页面完全不同的 CSS,并且使用命名空间似乎是一个非常复杂的解决方案。我如何让 Meteor 在某些页面上加载某些 CSS 文件而不在某些页面上加载某些 CSS 文件?

同样的问题也适用于 JS 文件。

我知道有人说这会很有用:

https://github.com/anticoders/meteor-modules

对这个条件 CSS 和 JS 包有什么意见吗?

cob*_*boy 2

您可以将 CSS 文件放在 /public 下的某个位置,并在需要时从模板中手动包含它们。/public 下的所有内容都不会被捆绑,并且 URL 将删除 /public,例如

  1. 创建两个文件:your_meteor_project/public/one.css 和 ......./two.css。这些可以从您的客户端http://example.com/one.css获得(即“public”不构成 URL 的一部分,它就像使用 Meteor 作为普通旧 Web 服务器的文档根)。
    meteor create cssSwitcher
    cd cssSwitcher/
    mkdir public
    echo 'html, body { background-color: red; }' > public/one.css
    echo 'html, body { background-color: blue; }' > public/two.css
Run Code Online (Sandbox Code Playgroud)
  1. 在 HTML 的头部创建对辅助函数“propertyStylesheet”的引用:

    HTML模板

    meteor create cssSwitcher
    cd cssSwitcher/
    mkdir public
    echo 'html, body { background-color: red; }' > public/one.css
    echo 'html, body { background-color: blue; }' > public/two.css
Run Code Online (Sandbox Code Playgroud)
  1. 创建一个辅助函数。

    JavaScript:

    <!-- add code to the <body> of the page -->
    <body>
      <h1>Hello!</h1>
      {{> welcomePage}}
    </body>

    <!-- define a template called welcomePage -->
    <template name="welcomePage">
      <!-- add code to the <head> of the page -->
      <head>
        <title>My website!</title>
        <link rel="stylesheet" href="/{{appropriateStylesheet}}" type="text/css" />
      </head>

      <p>Welcome to my website!</p>
      <button id="red">Red</button>
      <button id="blue">Blue</button>
    </template>
Run Code Online (Sandbox Code Playgroud)

您可以对 JS 文件执行完全相同的操作。将它们放在 /public 下,meteor 会忽略它们。

  • 真的吗?[meteor 文档](http://docs.meteor.com/#/full/structuringyourapp) 说你可以把东西放在 ```&lt;head&gt;``` 中,它们都会被连接起来:````" Meteor 会扫描目录中的所有 HTML 文件以查找三个顶级元素:&lt;head&gt;、&lt;body&gt; 和 &lt;template&gt;。head 和 body 部分分别连接成单个 head 和 body,并传输到客户端在初始页面加载时。“``我并不是说你错了,只是文档似乎不相符。 (3认同)