1

我在我的后端使用了一个管理主题,它使用 Bootstrap 3.0 css(用作主布局)。虽然我安装了使用 bootstrap 2 css 文件(用于我的网格和其他小部件)的 yiistrap 扩展,但现在如果我同时使用两者,每件事都会中断(通常是主题),这显然是因为使用了两个版本,并且一个覆盖另一个的 css。

我需要知道是否有一种方法可以区分两个 CSS,或者一个接一个地渲染是某种方式?还是我必须使用 yiistrap 文件制作自己的模板/主题?

让我举个例子,我的 main.php(布局)中有主题布局,所有主题文件都添加到这个文件中,接下来,我渲染我的用户/管理员视图,其中包含 Yiistrap 的 GridView,现在你可以看到我的问题,两个 CSS 文件都需要正确渲染所有内容,Hance 是我的问题。我想同时添加两个文件,但不要相互冲突。YII 是否为此提供了解决方案?因为这可能发生在我使用的任何主题上,而不仅仅是引导程序。

4

2 回答 2

1

Yiistrap 有一个名为 register 的方法,它将所有 CSS 和 JS 文件加载到呈现的 html 中。据我所知,这必须在应用程序生命周期的某个时间点手动触发,并且通常使用Yii::app()->bootstrap->register(). 如果您删除该调用并将其替换为对 Bootstrap 3 加载程序的调用,则应该没问题。

编辑

让我稍微澄清一下我的答案。现在我假设您正在调用Yii::app()->bootstrap->register()应用程序中的某个位置,包括 Bootstrap 3 文件。正如您所注意到的,这会导致冲突。 Yii::app()->bootstrap->register()只会包含 Yiistrap 直接需要的 CSS 和 JS 文件。因此,要么完全删除这个调用,要么有条件地用你的 Bootstrap 3 替换它,应该可以解决这个问题。

于 2013-10-26T13:39:51.810 回答
0

您可以重命名 bootstrap 的 assets 文件夹,并将路径定义为 admin 中的新文件夹名称,并正确放置 admin 主题。IE

theme/[your_theme_name]/views/layouts [这里你应该放置主主题文件,并在 bootstrap 资产文件的 head 标签中编写 yiistrap 代码]

theme/[your_theme_name]/views/admin [这里你应该放置管理主题文件]

如果您正确放置文件以及在<head></head>主主题文件部分正确分配资产文件的路径,我相信您不会遇到任何麻烦。

于 2013-10-26T07:17:02.173 回答