我正在Meteor中编写一个项目,有客户端和管理员以及他们的JS,CSS文件不同所以我需要为他们创建不同的head.html,如何导入到这个“head”元素(脚本,风格等)使用铁路由器?
答案 0 :(得分:1)
我将在前言中说,如果您在Meteor中加载所有CSS和JS,例如:
<link href="styles.css" rel="stylesheet" />
<script src="script.js"></script>
你可能做错了。 Meteor自动加载你放在项目目录中的所有CSS和JS。如果您需要从外部源动态加载CSS或JS,请参阅https://stackoverflow.com/a/14521217/2723753。
但是假设你知道这一点,那就不是一个简单的方法来做你所要求的。创建两个应用程序并创建软件包可能最容易,这样您就可以在应用程序之间共享一些代码/资产。
如果你想在一个应用程序中使用两个不同的铁路由器布局/样式,我所采用的方法是使用london:body-class包的修改版本,将布局名称和路径名称设置为类在html和body元素上。
然后在你的CSS中你可以参考例如。
body.AdminLayout button {
background-color: blue;
}
body.AdminLayout header {
background-color: red;
}
我使用Stylus因为我可以使用颜色等变量,因为规则可以嵌套,节省大量时间:
variables.import.styl:
$some_color_variable = rgba(r,g,b,a)
$another_color_variable = rgba(r,g,b,a)
$yet_another_color = rgba(r,g,b,a)
admin_layout.styl:
@import 'variables.import'
html.AdminLayout
font-size 20px
body.AdminLayout
button
background-color $some_color_variable
header
background-color $another_color_variable
// etc. etc.
public_layout.styl:
@import 'variables.import'
body.PublicLayout
button
background-color $yet_another_color
// etc. etc.
我现在就把它留在那里,如果你澄清了你想要实现的目标,我可以改进这个答案......