Yii зарегистрировать CSS файл, чтобы быть последним (после активов)
есть ли способ в Yii зарегистрировать JS или css-файлы для их загрузки после загрузки менеджером активов.
Я использую файл css для переопределения стилей из некоторых расширений Yii, но Yii включает мой файл перед активами, генерируемыми расширением.
Я знаю, что могу изменить расширение, чтобы удалить файлы css из assets manager и добавить их вручную с помощью registerCssFile
но это не так, как я хочу это сделать.
вот что у меня :
<head>
...
<link rel="stylesheet" type="text/css" href="/css/MY_CSS.css" />
...
<link rel="stylesheet" type="text/css" href="/assets/8e838803/css/EXTENSION_CSS.css" />
...
</head>
вот что я хочу:
<head>
...
<link rel="stylesheet" type="text/css" href="/assets/8e838803/css/EXTENSION_CSS.css" />
...
<link rel="stylesheet" type="text/css" href="/css/MY_CSS.css" /> <!-- the last one -->
</head>
любая помощь будет оценили!
4 ответов
зарегистрированные активы CClientScript всегда добавляются до заголовок
в вашем случае вы должны добавить код CSS после название, чтобы гарантировать заказ, который вы хотите
//example 1
class someWidget extends YourExtendsionClassName
{
public function init()
{
parent::init();
Yii::app()->getClientScript()->registerCssFile('/path/to/your/css/file.css');
}
// or
public function run()
{
Yii::app()->getClientScript()->registerCssFile('/path/to/your/css/file.css');
parent::run();
}
}
//example 2
//Layouts file main.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
<?php Yii::app()->getClientScript()->registerCssFile('/path/to/your/css/file.css'); ?>
</head>
в Yii2 хороший способ сделать это-использовать опцию "зависит" от registerCssFile, как показано в документация
$this->registerCssFile("http://example.com/css/themes/black-and-white.css", [
'depends' => [BootstrapAsset::className()],
'media' => 'print',
], 'css-print-theme');
в главном.PHP макеты, найти тег, поставить этот код строки:
Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/path/to/css/file');
http://www.codexamples.com/98/how-to-include-javascript-css-in-yii/