我正试图在我的项目中覆盖Bootstrap css。 将此代码添加到配置文件可以正常工作,但是所有的字形都没有正确显示
'assetManager' => [
'bundles' => [
'yii\bootstrap\BootstrapAsset' => [
'sourcePath' => '@webroot',
'css' => ['css/bootstrap.css']
],
],
],
我了解字体文件丢失但是如何添加?
答案 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个子文件夹:css
,js
和fonts
,它们都已发布到assets
文件夹中。
要解决此问题,您需要:
vendor/bower/bootstrap/dist
中的fonts和js文件夹复制到您的webroot中以维护链接。$sourcePath
更改为bootstrap/dist
文件夹的副本,并将其中的bootstrap.css替换为您自己的副本。您也可以直接在bootstrap.css中更改字体路径,但我不推荐它,因为它更难维护。