在Orchard中包含css文件

时间:2013-05-28 18:16:50

标签: .net css layout orchardcms shape

我创建了一个新主题(MyTheme),它是使用Codegen工具从TheThemeMachine继承的。 在MyTheme的Layout.cshtml中,我将一些CSS文件作为全局CSS(Style.Include(...))包含在内。 然后,我创建了一个名为Register的形状,以呈现寄存器形式。在(MyArea)/Views/Register.cshtml文件中,我使用Style.Include(“register.css”)来包含register.css文件。但是当在Chrome中呈现Register形状时,我发现register.css文件位于我在Layout.cshtml中包含的css文件之前?!!因此,注册表格没有显示我想要的内容。 在我看来,register.css必须位于Layout.cshtml中包含的全局css文件之后,因为register.css包含在Layout的Layout中!但真实的表明不是! 你能帮我解释一下它为什么以及我应该怎么做? 谢谢!

1 个答案:

答案 0 :(得分:0)

据我了解,您有以下设置:

  • 主题中的global.css
  • 您模块中的register.css

现在你想在global.css之后使用register.css,因为前者取决于后者。

你可以一起破解这个,但真正的问题在于你的依赖链。主题在样式方面具有最高优先级,因此最后将包含样式表和脚本(如果在资源清单中没有为它们定义显式依赖项),并且它们的形状覆盖将优先于模块中的覆盖。这背后的想法是,您应该能够覆盖主题中的任何内容。

那说你的register.css不应该依赖于global.css。模块是一个独立的子应用程序,应该负责包含或需要它需要的任何东西。如果您不想在模块中包含这样的样式,那么只需在主题中包含register.css(如global.css)。