Yii 2.0:重写Bootstrap CSS导致glyphicons失败

时间:2016-03-22 17:32:45

标签: css twitter-bootstrap yii2 glyphicons

我正试图在我的项目中覆盖Bootstrap css。 将此代码添加到配置文件可以正常工作,但是所有的字形都没有正确显示

'assetManager' => [
'bundles' => [
    'yii\bootstrap\BootstrapAsset' => [
         'sourcePath' => '@webroot',
         'css' => ['css/bootstrap.css']
         ],
    ],
],

之前的页面: enter image description here

后页: enter image description here

我了解字体文件丢失但是如何添加?

2 个答案:

答案 0 :(得分:1)

所以这是我对yii2& amp;的错误引导。 要覆盖bootstrap css,我们需要将bootstrap distributive(不仅是bootstap.css)复制到新目录,在我的例子中,它是Web可访问的web / custombootstrap / dist

并在配置文件中覆盖如下:

'assetManager' => [
    'bundles' => [
        'yii\bootstrap\BootstrapAsset' => [
            'basePath' => '@webroot',
            'baseUrl' => '@web/custombootstrap/dist',
            'css' => ['css/bootstrap.css']
        ],
    ],
],

答案 1 :(得分:1)

默认情况下,bootstrap.css要求字体位于字体文件夹中,该文件夹是css文件夹的兄弟。您的实施中不存在此文件夹。

yii\web\Asset$sourcePath文档:

  

如果包含源资源文件的目录不可通过Web访问,则必须设置此属性。通过设置此属性,yii\web\AssetManager将在页面上注册资产包时自动将源资产文件发布到Web可访问目录。

$sourcePath的默认yii\bootstrap\BootstrapAsset设置为@bower/bootstrap/dist。此文件夹包含3个子文件夹:cssjsfonts,它们都已发布到assets文件夹中。

要解决此问题,您需要:

  1. vendor/bower/bootstrap/dist中的fonts和js文件夹复制到您的webroot中以维护链接。
  2. $sourcePath更改为bootstrap/dist文件夹的副本,并将其中的bootstrap.css替换为您自己的副本。
  3. 您也可以直接在bootstrap.css中更改字体路径,但我不推荐它,因为它更难维护。