0

我使用 Codegen 工具创建了一个从 TheThemeMachine 继承的新主题(MyTheme)。在 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 中的 Content 中!但真实的表明那不是!你能帮我解释一下为什么会这样以及我应该怎么做吗?谢谢 !

4

1 回答 1

0

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

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

现在你想要在 global.css 之后注册.css,因为前者依赖于后者。

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

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

于 2013-05-29T15:19:29.340 回答