Как ссылаться на bootstrap. css в Yii2? - PullRequest
1 голос
/ 29 января 2020

Я хотел бы использовать файл bootstrap. css в качестве ссылки в расширении HTML2PDF, поскольку я очень полагаюсь на него при создании таблицы - которую мне также необходимо экспортировать в PDF.

Поэтому моя цель - включить ссылку на файл CSS в HTML, который я компилирую, но я не знаю, как правильно ссылаться на файл CSS. Очевидно, я могу посмотреть, что загружает браузер, например: http://sitename/web/assets/e2eb51c9/css/bootstrap.css, но это - я подозреваю - не является постоянной ссылкой, что имя папки alphanumeri c может быть заново сгенерировано после обновления или что-то в этом роде?

Итак, я ищу какой-то псевдоним, похожий на @webroot, который работает для поиска папки web. Я воображаю это может выглядеть примерно так: Yii::$app->vendors("bootstrap")->getFolder().

Есть ли такая функция?

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Для этого есть несколько способов:

1) Использовать пакеты активов. Не обязательно помещать его в AppAsset связку. По умолчанию это общий пакет и включен в основной макет, поэтому все включенные ресурсы будут публиковаться в каждом представлении.

Вы можете создать свой собственный AssetBundle.

Обратите внимание, что для внешних активов (которые находятся вне сети). доступный каталог) вам нужно использовать sourcePath, в противном случае - свойства basePath и baseUrl.

С обоими вариантами все, что вам нужно сделать в общем случае - заполнить массивы $js и $css и $depends для установки зависимостей, если это необходимо.

Подробнее читайте по ссылке ниже.

2) Используйте registerCssFile() и registerJsFile().

Первый подход предпочтительнее и рекомендуется в официальных документах. Он дает вам обработку зависимостей и многое другое.

Официальные документы:

0 голосов
/ 29 января 2020

Я включил в HTML HEAD следующее:

$bs = new \yii\bootstrap\BootstrapAsset;
<link rel='stylesheet' type='text/css' href='" . str_replace('\\', '/', $bs->sourcePath) . '/' . $bs->css[0] . "'>

Это работает, я просто не уверен, что это элегантный способ добиться этого.

...