Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii注册CSS文件,作为最后一个(在资产之后)_Php_Css_Yii_Registration - Fatal编程技术网

Php 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" />

在Yii中是否有方法注册js或css文件,以便在资产管理器加载这些文件之后再加载它们

我使用css文件覆盖某些Yii扩展名中的样式,但Yii在扩展名生成的资源之前包含我的文件

我知道我可以更改扩展名以从资产管理器中删除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');