2015-04-30 96 views
0

让我们假设我有两条路线需要两个不同的CSS如下。Iroun路由器不同的路线在不同的路线

/home

需求

<head> 
    <link rel="stylesheet" href="/home.css"> 
</head> 

而且

/dashboard

需求

<head> 
    <link rel="stylesheet" href="/dashboard.css"> 
</head> 

我不能将两个css放在相同的头文件中,因为它们有冲突。我不能做如下的事情。

<head> 
    <link rel="stylesheet" href="/home.css"> 
    <link rel="stylesheet" href="/dashboard.css"> 
</head> 

有没有什么办法可以把不同的css放在不同的路线中?

注意:我需要css来避免小故障。

回答

0

流星以类似于Rails资产管道的方式编译您的所有CSS。

您的问题来自非单页应用程序的心态。

您可以为不同的页面放置不同的样式表,在多页面网站中。但是,这对于只有一个页面的应用程序将如何工作?

相反,您应该限定您的样式规则。

IE,而不是.container { color: blue },做类似.container .home-container { color: blue }

+0

你是对的,单页的思维定势是使用普通CSS布局。在我的应用程序架构中,以/ dashboard开头的URL是SPA例如/ dashboard/stats,/ dashboard/user,而URL以/ home开头是另一个SPA。两者都会有不同的布局。 –

+0

如果您有两个单独的应用程序,为什么需要共享样式? – ilrein

+0

其实我不需要在这种情况下分享风格。以/ home开头的应用程序应该有不同的样式集,而以/仪表板开始的应用程序应该有不同。 –

2

您可以对两条路线使用不同的布局。

<template name="css1"> 
    <head> 
    <link rel="stylesheet" href="/dashboard.css"> 
</head> 
    <div class="main"> 
    {{> yield}} 
    </div> 
</template> 

<template name="css2"> 
    <head> 
    <link rel="stylesheet" href="/home.css"> 
</head> 
    <div class="main"> 
    {{> yield}} 
    </div> 
</template> 

,并用它在布局选项,如路线:

this.route('path to css1', { 
    path: '/', 
    layoutTemplate: 'css1', 
    template: "css1 template" 
}); 

或者:

你可以这样做:

<template name="layout"> 
    <head> 
    {> yield region="css"}} 
</head> 
    <div class="main"> 
    {{> yield}} 
    </div> 
</template> 

this.route('path to css1', { 
    path: '/', 
    layoutTemplate: 'layout', 
    template: "css1 template" 
    yieldTemplates: { 
    'temple having css1': {to: 'css'} 
    } 
}); 
+0

我不认为第一种方法可行,因为meteor不会将模板标签中的头标签放入html的最终聚合标头中 – rahulserver