如何在Yii框架中使用带有Yiistrap扩展的bootstrap3主题(bootstrap版本2)

时间:2013-10-25 13:33:37

标签: php twitter-bootstrap yii twitter-bootstrap-3 yii-extensions

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

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

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

2 个答案:

答案 0 :(得分: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,这样可以解决问题。

答案 1 :(得分:0)

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

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

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

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