Php Yii注册CSS文件,作为最后一个(在资产之后)
在Yii中是否有方法注册js或css文件,以便在资产管理器加载这些文件之后再加载它们 我使用css文件覆盖某些Yii扩展名中的样式,但Yii在扩展名生成的资源之前包含我的文件 我知道我可以更改扩展名以从资产管理器中删除css文件,并使用Php Yii注册CSS文件,作为最后一个(在资产之后),php,css,yii,registration,Php,Css,Yii,Registration,在Yii中是否有方法注册js或css文件,以便在资产管理器加载这些文件之后再加载它们 我使用css文件覆盖某些Yii扩展名中的样式,但Yii在扩展名生成的资源之前包含我的文件 我知道我可以更改扩展名以从资产管理器中删除css文件,并使用registercsfile手动添加它们,但这不是我想要的方式 以下是我所拥有的: <head> ... <link rel="stylesheet" type="text/css" href="/css/MY_CSS.css" />
registercsfile
手动添加它们,但这不是我想要的方式
以下是我所拥有的:
<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>
...
...
任何帮助都将不胜感激 通过CClientScript注册的资产始终添加在标题之前 在您的情况下,您应该在标题之后添加CSS,以保证您想要的顺序
//示例1
//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>
类someWidget扩展了您的ExtendSionClassName
{
公共函数init()
{
父::init();
Yii::app()->getClientScript()->registerCssFile('/path/to/your/css/file.css');
}
//或
公共功能运行()
{
Yii::app()->getClientScript()->registerCssFile('/path/to/your/css/file.css');
父::运行();
}
}
//例2
//布局文件main.php
标题
在main.php布局中,找到标记,将以下代码行:
Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/path/to/css/file');
在Yii2中,实现这一点的一个好方法是在registercsfile上使用'depends'选项,如
如何在静态页面中注册标题后的css文件,如site.com/index.php/site/page加载的内容?view=About@shgnInc与其他页面相同的规则适用,您不能使用CClientScript注册标题后的css文件,您需要手动操作。@Asgaroth,谢谢,如何手动操作?你的意思是,我在view/layout/main.php文件或任何其他文件中这样做吗?是的,在view/layout/main.php中,如果你的视图正在使用这个文件,手动地,我的意思是@Asgaroth,我需要一些css文件,只用于静态视图文件。在这种情况下,如何设置一次订单?
$this->registerCssFile("http://example.com/css/themes/black-and-white.css", [
'depends' => [BootstrapAsset::className()],
'media' => 'print',
], 'css-print-theme');