【问题标题】:how to determine which css file will be sent to clients如何确定将哪个 css 文件发送给客户端
【发布时间】:2013-09-03 07:57:28
【问题描述】:

我用Meteor 开始了一个简单的项目。但现在情况变得复杂了。我正在尝试为项目添加一个管理面板。我想分离网站及其面板。但是每个 css 和 js 文件都发送到站点和管理。

环境:我在meteor.com 主持项目。我的开发机器是 Windows 7。我不能使用陨石。如果您要建议我使用 mrt add router,欢迎您。但目前我做不到。

当前目录结构:

  • 客户端(client.js、index.html、css文件、其他js文件如jquery插件)
  • 服务器 (server.js)
  • 公开(用于 UI 的图像文件)

更新

我有 1 个索引文件是:

<head>
    <title>Index</title>
</head>

<body>
    {{> root}}
</body>

根模板在里面使用了一些其他的模板。我可能会使用 2 个不同的索引文件。 1 个用于站点,1 个用于管理面板。

根模板:

<template name="root">
    {{#if adminURL}}
        {{> adminLogin}}
    {{else}}
        {{> site}}
    {{/if}}
</template>

admin登录模板:

<template name="adminLogin">
    {{#if currentUser}}
        {{> management}}
    {{else}}
        admin login page.
            <div style="float: right">
              {{loginButtons align="right"}}
            </div>
    {{/if}}
</template>

管理模板:

<template name="management">
    <div id="header" class="navbar">
       ....
    </div>
    <div id="container" class="row-fluid">
       ....
    </div>
</template>

网站模板:

<template name="management">
     <h1>Hello World!</h1>
</template>

【问题讨论】:

    标签: javascript node.js meteor url-routing


    【解决方案1】:

    TLDR;如果您将文件放在/public 文件夹中,它们不会自动发送给客户端,只需要手动引用即可。

    要手动引用您的文件,只需将它们添加到您的 HTML 中,就在您的 &lt;/body&gt; 所在位置之前。所以对于/public/js/myFile1.js 的文件:

        <script type="text/javascript"  src="/js/myFile1.js"></script>
    </body>
    

    以下所有内容都发送到客户端,所有 js、css、font 和 html 文件都在顶层(根目录和子目录不是:

    • 服务器
    • 公开
    • 资产
    • 公开
    • 以“.”开头的文件夹
    • 或测试(不确定)

    全部连接成一个文件并发送给客户端。

    所以在公用文件夹中流星几乎忽略了它们。如果您愿意,可以手动引用它们以包含它们。

    另一种选择可能是制作一个私有包,这样您就可以明确决定要包含哪些文件,这样可以很容易地在不同的相关流星应用程序上使用相同的设计。

    【讨论】:

    • 请你澄清你的答案?如何手动引用文件?我正在根据您的回答编辑我的问题。
    • 我已经编辑了答案以反映如何引用文件
    • 我试过你的建议。在根模板中,我正在使用助手选择要显示的模板。如果将显示管理模板,我在模板底部添加了必要的 css 和 js 文件。通过这种方式,我只为管理面板传递 css 文件。但这不是一种非常有效的方法。 css 文件必须位于 head 标签内。
    • 我不确定这是否适用于模板,如果您想在 &lt;/body&gt; 后面引用它们,它适用于所有模板。使用 CSS 文件,您需要有一个 css 文件,然后为每个模板拆分您的类。 Meteor 应用程序在技术上位于一个页面上,因此您不能将每个模板拆分为拥有自己的 CSS 文件,因为它们无论如何都会被加载。您可以根据需要使用内联样式,但最好使用单个样式表并为每个模板拆分类。
    • 对于 cms 和站点本身使用单个 html 和 css 文件不是一种方便的方法。他们应该彼此分开。一种可能的选择是为每个应用程序创建 2 个不同的应用程序。看起来如此复杂的流星是如此新。我将对此进行进一步调查。
    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 2015-02-28
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    相关资源
    最近更新 更多