Maison  >  Article  >  cadre php  >  Qu'est-ce que le dossier Assets dans Yii ?

Qu'est-ce que le dossier Assets dans Yii ?

青灯夜游
青灯夜游original
2019-12-23 17:36:225794parcourir

Qu'est-ce que le dossier Assets dans Yii ?

Qu'est-ce que le dossier des ressources dans yii ?

Les ressources sont généralement des dossiers qui stockent certains fichiers de style (css), des fichiers de script (js), des fichiers d'images (images) et d'autres contenus dans le front et le backend, afin qu'ils puissent être utilisés avec Yii : :app() ->request->baseUrl est utilisé ensemble (pour obtenir le nom du projet).

Le rôle des actifs est de faciliter la modularisation et le plug-in. De manière générale, pour des raisons de sécurité, l'accès aux fichiers sous protégés via URL n'est pas autorisé, mais nous souhaitons également séparer le module, nous devons donc le faire. utilisez release, qui sera Copiez un fichier dans un répertoire vers des actifs pour un accès facile via l'URL

$assets = Yii::getPathOfAlias('ext').'/css';  
//$baseUrl = Yii::app()->getAssetManager()->publish($assets);  
$baseUrl = Yii::app()->assetManager->publish($assets);  //extensions/css发布到assets的创建一个随机不冲突的文件夹下  
Yii::app()->clientScript->registerCssFile($baseUrl.'/main.css');//引用assets下面的main.css

Si un module doit ajouter des ressources, ajoutez-les simplement directement à partir de la racine Web.

Mais essayez de créer un module qui peut être référencé n'importe où, être indépendant des ressources et éviter les conflits de noms.

Comment vous assurer que vos noms de fichiers n'entrent pas en conflit avec certaines applications dispersées essayant d'utiliser le même nom pour les fichiers, il en va de même pour js, images, css.

Grâce à CAssetManager, Yii::app()->assetManager peut publier automatiquement des ressources privées dans le répertoire public webroot/assets

Ce qui suit prend le module d'administration comme exemple

1. Placez les ressources dont vous avez besoin sous modules/admin/assets.

2. Ensuite, via CAssetManager, Yii::app()->assetManager peut publier automatiquement les ressources privées dans le répertoire public du site Web /assets

3. sur le site Web Créez un dossier aléatoire non conflictuel sous le répertoire /assets, tel que 2b31b42b, et copiez-y les fichiers de votre répertoire modules/admin/assets.

Obtenu via le code suivant, modifiez le fichier protectedmodulesadminAdminModule.php,

<?php  
class AdminModule extends CWebModule  
{  
    private $_assetsUrl;  
  
    public function getAssetsUrl()  
    {  
        if($this->_assetsUrl===null)  
            $this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias(&#39;application.modules.admin.assets&#39;));  
        return $this->_assetsUrl;  
    }  
  
    public function setAssetsUrl($value)  
    {  
        $this->_assetsUrl=$value;  
    }  
}

Ensuite, utilisez $this->module- in /protected/modules/admin/views/layouts/main. php >assetsUrl peut appeler votre CSS et d'autres fichiers.

Apprentissage recommandé : tutoriel yii

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn